Docker常用命令
一、帮助指令
docker version #显示docker 的版本信息
docker info #显示docker 的系统信息,包括镜像和容器的数量
docker [命令] --help #命令的 帮助信息
二、镜像命令
【docker images #查看镜像列表】
#解释
REPOSITORY TAG IMAGE ID CREATED SIZE
REPOSITORY #镜像的仓库源
TAG #标签
IMAGE ID #镜像ID
CREATED #创建时间
SIZE #镜像大小
--all 或 -a #看到所有的镜像
[ByCore@localhost ~]$ sudo docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 6084105296a9 2 weeks ago 133MB
alpine latest 28f6e2705743 5 weeks ago 5.61MB
--filter 或 -f #过滤
--filter=reference='*:latest' #匹配 所有 REPOSITORY / TAG 为 latest 的 镜像
[ByCore@localhost ~]$ sudo docker images --filter=reference='*:latest'
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 302aba9ce190 21 hours ago 5.61MB
mysql latest 26d0ac143221 7 days ago 546MB
nginx latest 6084105296a9 2 weeks ago 133MB
sudo docker inspect --format '{{(index .RootFS.Layers 0)}}' 302aba9ce190
--no-trunc #显示完整的镜像信息
[ByCore@localhost ~]$ sudo docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> sha256:6084105296a952523c36eea261af38885f41e9d1d0001b4916fa426e45377ffe 2 weeks ago 133MB
alpine latest sha256:28f6e27057430ed2a40dbdd50d2736a3f0a295924016e294938110eeb8439818 5 weeks ago 5.61MB
[ByCore@localhost ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 6084105296a9 2 weeks ago 133MB
alpine latest 28f6e2705743 5 weeks ago 5.61MB
--digests #显示镜像的摘要信息
[ByCore@localhost ~]$ sudo docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
<none> <none> <none> 6084105296a9 2 weeks ago 133MB
alpine latest sha256:a75afd8b57e7f34e4dad8d65e2c7ba2e1975c795ce1ee22fa34f8cf46f96a3be 28f6e2705743 5 weeks ago 5.61MB
--quiet 或 -q #值显示id
[ByCore@localhost ~]$ sudo docker images -q
6084105296a9
28f6e2705743
【docker search mysql #搜索镜像】
[ByCore@localhost ~]$ sudo docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10665 [OK]
mariadb MariaDB Server is a high performing open sou… 3997 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 779 [OK]
percona Percona Server is a fork of the MySQL relati… 528 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 87
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 80
centurylink/mysql Image containing mysql. Optimized to be link… 59 [OK]
bitnami/mysql Bitnami MySQL Docker Image 50 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 42
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
prom/mysqld-exporter 37 [OK]
....
--filter=STARS=3000 #搜索 镜像STARS 大于3000 的镜像
[ByCore@localhost ~]$ sudo docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10665 [OK]
mariadb MariaDB Server is a high performing open sou… 3997 [OK]
[ByCore@localhost ~]$
【docker pull 镜像名[:tag] #下载对应镜像】
#不添加 TAG 下载最新版本
[ByCore@localhost ~]$ sudo docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
6f28985ad184: Already exists
e7cd18945cf6: Pull complete
ee91068b9313: Pull complete
b4efa1a4f93b: Pull complete
f220edfa5893: Pull complete
74a27d3460f8: Pull complete
2e11e23b7542: Pull complete
fbce32c99761: Pull complete
08545fb3966f: Pull complete
5b9c076841dc: Pull complete
ef8b369352ae: Pull complete
ebd210f0917d: Pull complete
Digest: sha256:5d1d733f32c28d47061e9d5c2b1fb49b4628c4432901632a70019ec950eda491
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
[ByCore@localhost ~]$
#列表显示容器的所有版本
#添加 TAG 下载指定版本
[ByCore@localhost ~]$ sudo docker pull mysql:5.7
[sudo] password for ByCore:
Sorry, try again.
[sudo] password for ByCore:
5.7: Pulling from library/mysql
6f28985ad184: Already exists =====>
e7cd18945cf6: Already exists =====>
ee91068b9313: Already exists =====>
b4efa1a4f93b: Already exists =====>
f220edfa5893: Already exists =====>
74a27d3460f8: Already exists =====>
2e11e23b7542: Already exists =====> #容器的分层架构,下载镜像时 会比对本地镜像的分层与Docker Hub 中的分层,如果存在折不下载
39ac93d44c47: Pull complete
dfd9db50d4ea: Pull complete
3bc1b061dd92: Pull complete
51da5253cefc: Pull complete
Digest: sha256:90284763b95c67f1bfb6e4de640ec3ceb82a45a12af321201cd51d62e722af1d
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[ByCore@localhost ~]$
【docker rmi [镜像ID:镜像名[:tag] ] #删除对应镜像】
#通过ID 删除镜像 #通过镜像ID 删除 不能带TAG
[ByCore@localhost ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 2fb283157d3c 7 days ago 449MB
mysql latest 26d0ac143221 7 days ago 546MB
<none> <none> 6084105296a9 2 weeks ago 133MB
alpine latest 28f6e2705743 5 weeks ago 5.61MB
[ByCore@localhost ~]$ sudo docker rmi -f 6084105296a9 #镜像有运行的容器时,不能够删除
Error response from daemon: conflict: unable to delete 6084105296a9 (cannot be forced) - image is being used by running container 1fa1073b3ea4
[ByCore@localhost ~]$ sudo docker rmi -f 2fb283157d3c
Untagged: mysql:5.7
Untagged: mysql@sha256:90284763b95c67f1bfb6e4de640ec3ceb82a45a12af321201cd51d62e722af1d
Deleted: sha256:2fb283157d3c46af56502f59004fddbf4f8a2531c5c1c8be6168233dd7a41939
Deleted: sha256:4a0e2fca8f43fdc427996d49f3ef1bc020d8da5183d986b81f7f302a391ae5ed
Deleted: sha256:e35ba21a7d23155e942328d1aa816016ae1663165e1431a34a74ca172730d650
Deleted: sha256:6d2efff120dd67002624d7999876db66afeaf2aead8b7ccee4453e0d21a99628
Deleted: sha256:ad80b667eed27f25e7066ea2ebe8e4449fd997d6011f8e24dc3e5c74a7a6784e
[ByCore@localhost ~]$
#通过镜像名 删除镜像
[ByCore@localhost ~]$ sudo docker rmi mysql:latest
Untagged: mysql:latest
Untagged: mysql@sha256:5d1d733f32c28d47061e9d5c2b1fb49b4628c4432901632a70019ec950eda491
Deleted: sha256:26d0ac143221341c36402a139826e938d2ea6f2e458005a71699975c84e96ade
Deleted: sha256:16f5b1eb2e7319e8a0db5df7f1ee0903033400a42264fcfbcc2d946b12267895
Deleted: sha256:303119686434550f3672a755dcda8a0468d34472d77e8789ffef5dc5f73dc790
Deleted: sha256:88f159cadb30aacd4df26c9fb6e1fb71b3cc3f5ce05468659879216e7751bad7
Deleted: sha256:55b6e8ee7cbea49773b2a88c3941ebad16537df99b087e673ca4b0175ade1b70
Deleted: sha256:e27b1c89d3f9e194c1a3495c24a9546135ee3ab6625e94eaaedd09a41343e7d0
Deleted: sha256:c1e6768ecc0af349b2167ea29168a32da846ea4fd2ba08f37d4e45d9ee00080a
Deleted: sha256:1a0d8068bd29db71d09ff06b5356f73786f70bac70d157d2f4a1197a85aa682c
Deleted: sha256:4a52e2416c7889937a7dd82d485cc878f4d8607f20c0e77c4b0b060de457b00b
Deleted: sha256:cea5c46b3aee78a2d584f0374ab28a35995036de6b204086d34da265988e1970
Deleted: sha256:3e8ad860e72cc47bcdee6afa9c58904bbd1bc003acecaaf98393dd1c960026a6
Deleted: sha256:6f2660ea9ddbf232748e123ca4aa9f5f0ce40fef502ae2187456982b7c2efc33
[ByCore@localhost ~]$
[ByCore@localhost ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6084105296a9 2 weeks ago 133MB
alpine latest 28f6e2705743 5 weeks ago 5.61MB
[ByCore@localhost ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fa1073b3ea4 nginx "/docker-entrypoint.…" 55 minutes ago Up 55 minutes 0.0.0.0:81->80/tcp nginx-run
[ByCore@localhost ~]$ sudo docker rmi -f nginx:latest #删除 有容器运行的 镜像时,只时Untagged 对应的 REPOSITORY 和 TAG
Untagged: nginx:latest
[ByCore@localhost ~]$
[ByCore@localhost ~]$ sudo docker rmi nginx:latest #不加 -f 参数时 不允许删除
Error response from daemon: conflict: unable to remove repository reference "nginx:latest" (must force) - container 1fa1073b3ea4 is using its referenced image 6084105296a9
[ByCore@localhost ~]$
#批量删除镜像
[ByCore@localhost ~]$ sudo docker rmi -f $(docker images -qa) #删除所有镜像 如果有其中某些镜像有容器运行,无法删除
[ByCore@localhost ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a5830b10086 nginx "/docker-entrypoint.…" 13 minutes ago Exited (137) 12 minutes ago nginx-run2
23810f7ccd2a nginx "/docker-entrypoint.…" 19 minutes ago Up 18 minutes 0.0.0.0:81->80/tcp nginx-run
[ByCore@localhost ~]$ sudo docker rm -f $(sudo docker ps -qa --filter=status=exited) #删除所有状态 为 exited 的容器
7a5830b10086
#删除 tag 为 <none> 的镜像
[ByCore@localhost ~]$ sudo docker image prune
[sudo] password for ByCore:
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
[ByCore@localhost ~]$
#删除 无容器 使用的镜像
[ByCore@localhost ~]$ sudo docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 2fb283157d3c 7 days ago 449MB
mysql latest 26d0ac143221 7 days ago 546MB
nginx latest 6084105296a9 2 weeks ago 133MB
alpine latest 28f6e2705743 5 weeks ago 5.61MB
[ByCore@localhost ~]$ sudo docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: mysql:5.7
untagged: mysql@sha256:90284763b95c67f1bfb6e4de640ec3ceb82a45a12af321201cd51d62e722af1d
deleted: sha256:2fb283157d3c46af56502f59004fddbf4f8a2531c5c1c8be6168233dd7a41939
deleted: sha256:4a0e2fca8f43fdc427996d49f3ef1bc020d8da5183d986b81f7f302a391ae5ed
deleted: sha256:e35ba21a7d23155e942328d1aa816016ae1663165e1431a34a74ca172730d650
deleted: sha256:6d2efff120dd67002624d7999876db66afeaf2aead8b7ccee4453e0d21a99628
deleted: sha256:ad80b667eed27f25e7066ea2ebe8e4449fd997d6011f8e24dc3e5c74a7a6784e
untagged: mysql:latest
untagged: mysql@sha256:5d1d733f32c28d47061e9d5c2b1fb49b4628c4432901632a70019ec950eda491
deleted: sha256:26d0ac143221341c36402a139826e938d2ea6f2e458005a71699975c84e96ade
deleted: sha256:16f5b1eb2e7319e8a0db5df7f1ee0903033400a42264fcfbcc2d946b12267895
deleted: sha256:303119686434550f3672a755dcda8a0468d34472d77e8789ffef5dc5f73dc790
deleted: sha256:88f159cadb30aacd4df26c9fb6e1fb71b3cc3f5ce05468659879216e7751bad7
deleted: sha256:55b6e8ee7cbea49773b2a88c3941ebad16537df99b087e673ca4b0175ade1b70
deleted: sha256:e27b1c89d3f9e194c1a3495c24a9546135ee3ab6625e94eaaedd09a41343e7d0
deleted: sha256:c1e6768ecc0af349b2167ea29168a32da846ea4fd2ba08f37d4e45d9ee00080a
deleted: sha256:1a0d8068bd29db71d09ff06b5356f73786f70bac70d157d2f4a1197a85aa682c
deleted: sha256:4a52e2416c7889937a7dd82d485cc878f4d8607f20c0e77c4b0b060de457b00b
deleted: sha256:cea5c46b3aee78a2d584f0374ab28a35995036de6b204086d34da265988e1970
deleted: sha256:3e8ad860e72cc47bcdee6afa9c58904bbd1bc003acecaaf98393dd1c960026a6
deleted: sha256:6f2660ea9ddbf232748e123ca4aa9f5f0ce40fef502ae2187456982b7c2efc33
untagged: alpine:latest
untagged: alpine@sha256:a75afd8b57e7f34e4dad8d65e2c7ba2e1975c795ce1ee22fa34f8cf46f96a3be
deleted: sha256:28f6e27057430ed2a40dbdd50d2736a3f0a295924016e294938110eeb8439818
deleted: sha256:cb381a32b2296e4eb5af3f84092a2e6685e88adbc54ee0768a1a1010ce6376c7
Total reclaimed space: 795.9MB
[ByCore@localhost ~]$ sudo docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6084105296a9 2 weeks ago 133MB
三、容器命令
【docker run [参数] image】
#参数说明
--name="name" #容器名称,给容器一个别名
-d #后台方式运行
-it #使用交互式运行,bind 交互式shell(进入交互式shell)
-p #绑定(映射)宿主机端口到容器软口 :-p 8080:8080
#[-p ip:主机端口:容器端口] : 带 ip
#[-p 主机端口:容器端口]
#[-p 容器端口] : 不映射端口
#[容器端口]
-P #大P 随机指定端口
启动并进入容器
[ByCore@localhost ~]$ sudo docker run -it centos /bin/bash #不使用 --name 指定名称,docker 会随机生成一个 容器名称
[sudo] password for ByCore:
[root@79342bff2ffb /]#
[root@79342bff2ffb /]# exit
exit
[ByCore@localhost ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23810f7ccd2a 6084105296a9 "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:81->80/tcp nginx-run
[ByCore@localhost ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79342bff2ffb centos "/bin/bash" 2 minutes ago Exited (0) 14 seconds ago silly_pike
23810f7ccd2a 6084105296a9 "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:81->80/tcp nginx-run
[ByCore@localhost ~]$
【docker ps】列表容器
#参数说明
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。 --format 的所有 key值 可以通过 模板 :'{{json .}}' 来获取
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
#输出信息:
CONTAINER ID : 容器 ID。
IMAGE : 使用的镜像。
COMMAND : 启动容器时运行的命令。
CREATED : 容器的创建时间。
STATUS : 容器状态。
#状态类型:
created :(已创建)
restarting :(重启中)
running :(运行中)
removing :(迁移中)
paused :(暂停)
exited :(停止)
dead :(死亡)
#过滤条件:
id : container's id [容器ID]
label : label=<key> | label=<key>=<value> [1: label=color 2: label=color=blue]
exited :
status : created|restarting|running|removing|paused|exited|dead
显示所有容器 -a 【包含exited 的容器】
[ByCore@localhost ~]$ sudo docker ps -a #STATUS 包含Exited 为 停止的容器,包含Up 为 运行的容器 后面 接 时间,表示运行或停止的时常
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f93de165c287 centos "/bin/bash" 5 minutes ago Exited (0) 5 minutes ago infallible_shtern
79342bff2ffb centos "/bin/bash" 9 minutes ago Exited (0) 7 minutes ago silly_pike
23810f7ccd2a 6084105296a9 "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:81->80/tcp nginx-run
[ByCore@localhost ~]$
只显示 运行中的容器
#方法一 :docker ps 【不加任何参数】
[ByCore@localhost ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23810f7ccd2a 6084105296a9 "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:81->80/tcp nginx-run
[ByCore@localhost ~]$
#方法二:sudo docker ps -a --filter=status=running
[ByCore@localhost ~]$ sudo docker ps -a --filter=status=running
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23810f7ccd2a 6084105296a9 "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:81->80/tcp nginx-run
[ByCore@localhost ~]$
只显示 停止状态的容器
#方法一:docker ps --filter=status=exited
[ByCore@localhost ~]$ sudo docker ps --filter=status=exited
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f93de165c287 centos "/bin/bash" 15 minutes ago Exited (0) 15 minutes ago infallible_shtern
79342bff2ffb centos "/bin/bash" 20 minutes ago Exited (0) 18 minutes ago silly_pike
[ByCore@localhost ~]$
#方法二:docker ps -a --filter=exited=0 #筛选的是 STATUS 状态为 exited 且 信号 为 0
[ByCore@localhost ~]$ sudo docker ps -a --filter=exited=0
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f93de165c287 centos "/bin/bash" 29 minutes ago Exited (0) 29 minutes ago infallible_shtern
79342bff2ffb centos "/bin/bash" 33 minutes ago Exited (0) 31 minutes ago silly_pike
[ByCore@localhost ~]$