1. docker常用命令详解
1.1 docker info
Containers: 3 容器个数
Running: 2 运行的容器个数
Paused: 0 暂停的docker个数
Stopped: 1 停止运行的docker个数
Images: 15 镜像个数
Server Version: 17.03.3-ce docker 版本
Storage Driver: overlay 存储驱动格式
Backing Filesystem: xfs 文件系统格式
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 6c463891b1ad274d505ae3bb738e530d1df2b3c7
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1062.9.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 3.692 GiB
Name: centos7.clone
ID: SSBJ:TBZ7:GG4Q:AWRB:OVNT:OZYW:CY7U:KZO4:YPX3:ENXW:WNDU:PIJ5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
192.168.40.101:5000
127.0.0.0/8
Registry Mirrors:
https://registry.docker-cn.com
https://z53f46dz.mirror.aliyuncs.com
Live Restore Enabled: false
docker info 列出来的都是关于docker的详细信息
1.2 Docker search 搜索
这个命令就是用来搜索镜像的,从注册的镜像网站搜索镜像
example:
docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12690 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1742 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 757 [OK]
linuxserver/nginx An Nginx container, brought to you by Linu... 92
bitnami/nginx Bitnami nginx Docker Image 75 [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rt... 63 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ... 42
nginxdemos/hello NGINX webserver that serves a simple page ... 37 [OK]
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 35 [OK]
nginx/unit NGINX Unit is a dynamic web and applicatio... 34
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 25
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & ... 21 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP t... 18 [OK]
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 13
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 13 [OK]
centos/nginx-18-centos7 Platform for running nginx 1.8 or building... 12
centos/nginx-112-centos7 Platform for running nginx 1.12 or buildin... 12
raulr/nginx-wordpress Nginx front-end for the official wordpress... 12 [OK]
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter 9
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats... 7 [OK]
mailu/nginx Mailu nginx frontend 5 [OK]
bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Con... 4 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX 1 [OK]
wodby/nginx Generic nginx 0 [OK]
centos/nginx-110-centos7 Platform for running nginx 1.10 or buildin... 0
这样就搜索到了nginx的镜像,也可以去镜像官网进行搜索下载
1.3 Docker pull 下载镜像
docker pull 镜像名称:tag
这个命令就是从镜像网站下载镜像到本地,如果不加tag就是默认下载最后的版本。
example:
docker pull mysql
1.4 Docker images 查看本地的镜像
docker images 就是查看本地已经下载的镜像有哪些
example:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.40.101:5000/centos-jdk v1.8 b3e67747f09f 12 days ago 1.42 GB
centos-jdk v1.8 b3e67747f09f 12 days ago 1.42 GB
c-mysql 5.1 bbd4d86f1341 12 days ago 776 MB
nginx latest 2073e0bcb60e 3 weeks ago 127 MB
mysql 5.7 c4f186b9e038 3 weeks ago 435 MB
registry latest 708bc6af7e5e 4 weeks ago 25.7 MB
wordpress latest a9f43b7c47db 2 months ago 539 MB
mariadb latest 2f11cf2ec189 2 months ago 355 MB
tomcat latest 6fa48e047721 2 months ago 507 MB
mysql latest d435eee2caa5 3 months ago 456 MB
centos 6.8 82f3b5f3c58f 11 months ago 195 MB
hello-world latest fce289e99eb9 13 months ago 1.84 kB
hub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3 years ago 602 MB
1.5 Docker rmi 删除镜像
docker rmi 镜像名称:tag / ID
删除镜像注意加上镜像tag或者直接使用镜像的ID删除,如果这个镜像被正在运行的容器引用,这样就是不允许删除的。
example:
docker rmi mysql:5.7
Untagged: nginx:latest
Untagged: nginx@sha256:ad5552c786f128e389a0263104ae39f3d3c7895579d45ae716f528185b36bc6f
Deleted: sha256:2073e0bcb60ee98548d313ead5eacbfe16d9054f8800a32bedd859922a99a6e1
Deleted: sha256:a3136fbf38691346715cac8360bcdfca0fff812cede416469653670f04e2cab0
Deleted: sha256:99360ffcb2da18fd9ede194efaf5d4b90e7aee99f45737e918113e6833dcf278
Deleted: sha256:488dfecc21b1bc607e09368d2791cb784cf8c4ec5c05d2952b045b3e0f8cc01e
1.6 Docker ps 查看容器
docker ps -a 查看所有容器,包括运行的和停止的所有容器
docker ps -s 查看正在运行的容器
docker ps -q 查看容器的ID
example:
docker ps -s
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
4d3e93e474af wordpress:latest "docker-entrypoint..." 31 minutes ago Up 31 minutes 0.0.0.0:8080->80/tcp root_wordpress_1 95 B (virtual 539 MB)
93f4a5dbaa96 mysql:5.7 "docker-entrypoint..." 31 minutes ago Up 31 minutes 3306/tcp, 33060/tcp root_wpdb_1 4 B (virtual 435 MB)
1.7 Docker run 创建一个容器
docker run [–option] 创建一个容器
example:
docker run --name docker-mysql5.7 -e MYSQL_ROOT_PASSWORD=root -p 3307:3306 -d mysql:5.7
1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671
创建完成后会返回容器的ID
在创建容器的时候可以加很多参数,就是在创建之初配置好容器的运行状态。
[可选]
–restart always 创建这容器后,以后随着docker进程的启动就可以启动该容器,类似于开机自启的意思
-h 主机名 设置容器主机名,如果不设置默认就是容器的ID
–dns xxx.xxx.xxx.xxx 给容器指定dns解析服务地址,这样可以给容器提供链接互联网的环境
–add-host hostname:IP 给容器添加host映射
–rm 加了这个参数之后,当这个容器stop之后就会被删除,如果不加stop之后还是可以存在的
1.8 Docker start/stop 启动/停止
docker start 启动一个已经创建好的容器
docker stop 停止一个正在运行的容器,加上 -f 强制删除正在运行的容器
1.9 容器的ID号
每一个容器都会分配一个ID作为索引,这个ID完整是128位,但是常常只显示12位
如果查看完整的ID可以使用 docker ps --no-trunc
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671 mysql:5.7 "docker-entrypoint.sh mysqld" 49 seconds ago Up 48 seconds 33060/tcp, 0.0.0.0:3308->3306/tcp docker-mysql5.7-2
76ad9d4dc133895f0a9f0b6742e13d31a35fc47c3aae150316ce5700407b824b mysql:5.7 "docker-entrypoint.sh mysqld" 2 minutes ago Up 2 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp docker-mysql5.7
4d3e93e474af950aa2490bc6eda30a0c5df93992e2602c1f9ca0d0446d25a53d wordpress:latest "docker-entrypoint.sh apache2-foreground" 39 minutes ago Up 39 minutes 0.0.0.0:8080->80/tcp root_wordpress_1
93f4a5dbaa969b5c3ea4eb0a0abb5a2769137588207e310266c6546ba34e9736 mysql:5.7 "docker-entrypoint.sh mysqld" 39 minutes ago Up 39 minutes 3306/tcp, 33060/tcp root_wpdb_1
1.10 Docker inspect
docker inpect 是查看容器的详细信息
example:
docker inpect mysql:5.7
[
{
"Id": "1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671",
"Created": "2020-02-23T10:34:52.321913757Z",
"Path": "docker-entrypoint.sh",
"Args": [
"mysqld"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 4040,
"ExitCode": 0,
"Error": "",
"StartedAt": "2020-02-23T10:34:52.528995606Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:c4f186b9e038c856c5fb5f6b27ca106db3cc064594b7e5706d0350a3ab6220db",
"ResolvConfPath": "/var/lib/docker/containers/1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671/hostname",
"HostsPath": "/var/lib/docker/containers/1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671/hosts",
"LogPath": "/var/lib/docker/containers/1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671/1ab8771b067ece7f838fffb26a6eca59371fb51dd7fca95cc2443f93aa4e3671-json.log",
"Name": "/docker-mysql5.7-2",
"RestartCount": 0,
"Driver": "overlay",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
......
]
1.11 Docker logs 查看容器日志
docker logs 容器
example:
docker logs docker-mysql5.7
2020-02-23 10:32:54+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.29-1debian9 started.
2020-02-23 10:32:54+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2020-02-23 10:32:54+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.29-1debian9 started.
2020-02-23T10:32:54.760763Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-02-23 10:32:54+00:00 [Note] [Entrypoint]: Initializing database files
2020-02-23T10:32:54.845726Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-02-23T10:32:54.860056Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-02-23T10:32:54.914339Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: d9fc92fe-5627-11ea-98e4-0242ac110002.
2020-02-23T10:32:54.915075Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-02-23T10:32:56.027454Z 0 [Warning] CA certificate ca.pem is self signed.
1.12 Docker stats 查看容器的资源占用
dokcer stats 容器名称 查看该容器消耗的资源
example:
docker stats docker-mysql5.7
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
docker-mysql5.7 0.03% 398.8 MiB / 3.692 GiB 10.55% 3.26 kB / 4.41 kB 0 B / 583 MB 29
这个显示是实时刷新的和宿主机的top命令查看内存使用情况是类似的。
1.13 Docker exec 和容器进行交互操作
docker exec 容器名
example:
docker exec -it 容器 /bin/bash
通过这个命令就进入到容器的环境里,和宿主机的命令行操作是一样的。
来源:CSDN
作者:L凝竹
链接:https://blog.csdn.net/xiaoliu_qq/article/details/104464233