Docker容器命令
docker pull
**获取镜像 (image) **
D:\hexoBlog>docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
a330b6cecb98: Already exists
9c8f656c32b8: Pull complete
88e473c3f553: Pull complete
062463ea5d2f: Pull complete
daf7e3bdf4b6: Pull complete
1839c0b7aac9: Pull complete
cf0a0cfee6d0: Pull complete
1b42041bb11e: Pull complete
10459d86c7e6: Pull complete
b7199599d5f9: Pull complete
1d6f51e17d45: Pull complete
50e0789bacad: Pull complete
Digest: sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
docker build
使用 Dockerfile 创建镜像 (image)
```
> ### docker images
**列出本地镜像 (image)**
``` bash
PS C:\Users\wang> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ad4c705f24d3 4 days ago 133MB
mysql latest 0716d6ebcc1a 11 days ago 514MB
docker/getting-started latest 083d7564d904 3 months ago 28MB
hub.c.163.com/library/nginx latest 46102226f2fd 4 years ago 109MB
docker cp
用于容器与主机之间的数据拷贝
将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
C:\Users\wang>docker cp /www/runoob 9703d:/www/
CreateFile C:\www: The system cannot find the file specified.
C:\Users\wang>docker cp /www/runoob 9703d:/www/
C:\Users\wang>docker exec -it 9703d /bin/bash
root@9703dcaf7efc:/# cd /
root@9703dcaf7efc:/# ls
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr www
root@9703dcaf7efc:/# cd www
root@9703dcaf7efc:/www# ls
1.txt
root@9703dcaf7efc:/www# cat 1.txt
111111111111111
root@9703dcaf7efc:/www#
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
C:\Users\wang>docker cp 9703d:/www /tmp/
docker commit
从容器创建一个新的镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
- **-a :**提交的镜像作者;
- **-c :**使用Dockerfile指令来创建镜像;
- **-m :**提交时的说明文字;
- **-p :**在commit时,将容器暂停。
C:\Users\wang>docker commit -a "wangql" -m "wangSQL" 9703d wangSQL
invalid reference format: repository name must be lowercase
C:\Users\wang>docker commit -a "wangql" -m "wangSQL" 9703d wangsql
sha256:9cb7bdcd2ed312f18242775f8f964b7ef860e3fdd1c523842e256e942d9d1be4
C:\Users\wang>docker images wangsql
REPOSITORY TAG IMAGE ID CREATED SIZE
wangsql latest 9cb7bdcd2ed3 9 seconds ago 514MB
docker rmi
删除本地一个或多个镜像 (image)
C:\Users\wang>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 0990594dba3d 38 minutes ago 514MB
nginx latest ad4c705f24d3 5 days ago 133MB
mysql latest 0716d6ebcc1a 12 days ago 514MB
docker/getting-started latest 083d7564d904 3 months ago 28MB
hub.c.163.com/library/nginx latest 46102226f2fd 4 years ago 109MB
C:\Users\wang>docker rmi -f mysql nginx
Untagged: mysql:latest
Untagged: mysql@sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c
Untagged: nginx:latest
Untagged: nginx@sha256:853b221d3341add7aaadf5f81dd088ea943ab9c918766e295321294b035f3f3e
docker run
创建一个新的容器并运行一个命令 (container)
docker ps
列出正在运行的容器列表
D:\hexoBlog>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da5001f28240 nginx "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 80/tcp distracted_engelbart
显示所有的容器,包括未运行的 docker ps -a
C:\Users\wang>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da5001f28240 nginx "/docker-entrypoint.…" 22 hours ago Exited (255) 13 minutes ago 80/tcp distracted_engelbart
30402568e75b nginx "/docker-entrypoint.…" 22 hours ago Exited (0) 22 hours ago
happy_heyrovsky
08d4e5c65b09 docker/getting-started "/docker-entrypoint.…" 29 hours ago Exited (0) 29 hours ago
pensive_robinson
1760a9cdaee1 hub.c.163.com/library/nginx "nginx -g 'daemon of…" 29 hours ago Exited (255) 29 hours ago 0.0.0.0:8080->80/tcp, :::8080->80/tcp frosty_hopper
2611bfa8785a docker/getting-started "/docker-entrypoint.…" 29 hours ago Exited (255) 29 hours ago 0.0.0.0:80->80/tcp, :::80->80/tcp priceless_rosalind
da9c518b220b hub.c.163.com/library/nginx "nginx -g 'daemon of…" 30 hours ago Exited (0) 30 hours ago
heuristic_rubin
790e60c35d23 nginx "/docker-entrypoint.…" 3 days ago Exited (137) 3 days ago
nginx-test
9ce1de13f46a docker/getting-started:latest "/docker-entrypoint.…" 3 days ago Exited (0) 3 days ago
cool_hodgkin
424e2623c296 docker/getting-started "/docker-entrypoint.…" 3 days ago Exited (137) 3 days ago
cool_fermat
C:\Users\wang>
docker stop
关闭容器
D:\hexoBlog>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da5001f28240 nginx "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 80/tcp distracted_engelbart
D:\hexoBlog>docker stop da5001
da5001
D:\hexoBlog>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker start
启动容器
D:\hexoBlog>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da5001f28240 nginx "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 80/tcp distracted_engelbart
D:\hexoBlog>docker stop da5001
da5001
D:\hexoBlog>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
D:\hexoBlog>docker start da5001
da5001
D:\hexoBlog>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da5001f28240 nginx "/docker-entrypoint.…" 7 minutes ago Up 5 seconds 80/tcp distracted_engelbart
docker restart
重启容器
D:\hexoBlog>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da5001f28240 nginx "/docker-entrypoint.…" 7 minutes ago Up 5 seconds 80/tcp distracted_engelbart
D:\hexoBlog>docker restart da5001
da5001
docker attach | exec
进入容器内部
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
- **-d :**分离模式: 在后台运行
- **-i :**即使没有附加也保持STDIN 打开
- **-t :**分配一个伪终端
C:\Users\wang>docker exec -it 9703d /bin/bash
root@9703dcaf7efc:/# ls
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
root@9703dcaf7efc:/# cd /
root@9703dcaf7efc:/# ls
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
root@9703dcaf7efc:/#
root@9703dcaf7efc:/#
docker inspect
获取容器/镜像的元数据
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS说明:
- **-f :**指定返回值的模板文件。
- **-s :**显示总的文件大小。
- **–type :**为指定类型返回JSON。
C:\Users\wang>docker inspect mysql
[
{
"Id": "e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6",
"Created": "2021-09-15T15:17:49.314726Z",
"Path": "docker-entrypoint.sh",
"Args": [
"mysqld"
],
"State": {
"Status": "exited",
"Running": false,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 1,
"Error": "",
"StartedAt": "2021-09-15T15:17:50.3746439Z",
"FinishedAt": "2021-09-15T15:17:50.5453195Z"
},
"Image": "sha256:0716d6ebcc1a61c5a296fcb187e71f93531e510d4e4400267e2e502103d0194c",
"ResolvConfPath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/hostname",
"HostsPath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/hosts",
"LogPath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6-json.log",
"Name": "/mysql",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "host",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
获取正在运行的容器mymysql的 IP
C:\Users\wang>docker inspect --format "{{ .NetworkSettings.IPAddress }}" 970
172.17.0.2
C:\Users\wang>
C:\Users\wang>docker inspect --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mysql-test
172.17.0.2
docker logs
获取容器的日志
D:\hexoBlog>docker logs da5001
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/09/14 17:21:58 [notice] 1#1: using the "epoll" event method
2021/09/14 17:21:58 [notice] 1#1: nginx/1.21.3
2021/09/14 17:21:58 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/09/14 17:21:58 [notice] 1#1: OS: Linux 5.10.16.3-microsoft-standard-WSL2
2021/09/14 17:21:58 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/09/14 17:21:58 [notice] 1#1: start worker processes
2021/09/14 17:21:58 [notice] 1#1: start worker process 32
2021/09/14 17:21:58 [notice] 1#1: start worker process 33
2021/09/14 17:21:58 [notice] 1#1: start worker process 34
2021/09/14 17:21:58 [notice] 1#1: start worker process 35
2021/09/14 17:21:58 [notice] 1#1: start worker process 36
docker top
查看容器中运行的进程信息
D:\hexoBlog>docker top da5001
UID PID PPID C STIME TTY
TIME CMD
root 2073 2053 0 17:30 ?
00:00:00 nginx: master process nginx -g daemon off;
uuidd 2125 2073 0 17:30 ?
00:00:00 nginx: worker process
uuidd 2126 2073 0 17:30 ?
00:00:00 nginx: worker process
uuidd 2127 2073 0 17:30 ?
00:00:00 nginx: worker process
uuidd 2128 2073 0 17:30 ?
00:00:00 nginx: worker process
uuidd 2129 2073 0 17:30 ?
00:00:00 nginx: worker process
uuidd 2130 2073 0 17:30 ?
00:00:00 nginx: worker process
uuidd 2131 2073 0 17:30 ?
00:00:00 nginx: worker process
uuidd 2132 2073 0 17:30 ?
00:00:00 nginx: worker process
docker port
列出指定的容器的端口映射
C:\Users\wang>docker run -itd --name mysql-test -p 3333:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
9703dcaf7efc2614bbec8f89cecab3f3e72285f933154b310bd51e6c7a5127df
C:\Users\wang>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
9703dcaf7efc mysql "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 33060/tcp, 0.0.0.0:3333->3306/tcp, :::3333->3306/tcp mysql-test
C:\Users\wang>docker port 9703d
3306/tcp -> 0.0.0.0:3333
3306/tcp -> :::3333
docker wait
阻塞运行直到容器停止,然后打印出它的退出代码
docker wait CONTAINER
C:\Users\wang>docker wait 970
0
C:\Users\wang>
docker rm
删除容器
C:\Users\wang>docker rm zhouzhichao
zhouzhichao
链接: