文章目录
- 前言
- 一、Docker环境信息
- 二、镜像命令
- 三、容器命令
- 四、以下为命令测试
- Ⅰ.镜像命令
- Ⅱ.容器命令
- 1.docker run
- 2.docker start
- 3.docker stop
- 4.docker restart
- 5.docker kill
- 6.docker rm
- 7.docker pause
- 8.docker unpause
- 9.docker create
- 10.docker exec
- 11.docker ps
- 12.docker inspect
- 13.docker top
- 14.docker attach
- 15.docker events
- 16.docker logs
- 17.docker wait
- 18.docker export
- 19.docker port
- 20.docker commit
- 21.docker cp
- 22.docker diff
- 总结
前言
本篇文章仅为本人做笔记使用,命令是从菜鸟教程上复制的方便查询,下面还会贴上一些命令运行的代码片段。之前一直在用简书,但是有点蛋疼的就是简书markdown语法不支持html,没办法使用锚点跳转。
命令的详细地址最好还是参考docker 的官方文档地址:https://docs.docker.com/reference/
提示:以下是本篇文章正文内容,下面案例可供参考
一、Docker环境信息
命令 | 说明 | 其他参数 |
---|---|---|
docker info | 显示 Docker 系统信息,包括镜像和容器数。。 | |
docker version | 显示 Docker 版本信息。 | -f :指定返回值的模板文件。 |
docker 命令 --help | 帮助命令,显示命令相关参数信息 |
二、镜像命令
1.镜像仓库
命令 | 说明 | 其他参数 |
---|---|---|
docker login | 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub | -u :登陆的用户名 -p :登陆的密码 |
docker logout | 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub | |
docker pull | 从镜像仓库中拉取或者更新指定镜像 | -a :拉取所有 tagged 镜像--disable-content-trust :忽略镜像的校验,默认开启 |
docker push | 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库 | --disable-content-trust :忽略镜像的校验,默认开启 |
docker search | 从Docker Hub查找镜像 | --automated :只列出 automated build类型的镜像;--no-trunc :显示完整的镜像描述;-s :列出收藏数不小于指定值的镜像。 |
2.本地镜像
命令 | 说明 | 其他参数 |
---|---|---|
docker images | 列出本地镜 | -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);--digests :显示镜像的摘要信息;-f :显示满足条件的镜像; --format :指定返回值的模板文件;--no-trunc :显示完整的镜像信息;-q :只显示镜像ID。 |
docker rmi | 删除本地一个或多少镜像 | -f :强制删除;--no-prune :不移除该镜像的过程镜像,默认移除; |
docker tag | 标记本地镜像,将其归入某一仓库 | docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] |
docker build | 用于使用 Dockerfile 创建镜像 | --build-arg=[] :设置镜像创建时的变量;--cpu-shares :设置 cpu 使用权重;--cpu-period :限制 CPU CFS周期;--cpu-quota :限制 CPU CFS配额;--cpuset-cpus :指定使用的CPU id;--cpuset-mems :指定使用的内存 id;--disable-content-trust :忽略校验,默认开启;-f :指定要使用的Dockerfile路径;--force-rm :设置镜像过程中删除中间容器;--isolation :使用容器隔离技术;--label=[] :设置镜像使用的元数据;-m :设置内存最大值;--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;--no-cache :创建镜像的过程不使用缓存;--pull :尝试去更新镜像的新版本;--quiet, -q :安静模式,成功后只输出镜像 ID;--rm :设置镜像成功后删除中间容器;--shm-size :设置/dev/shm的大小,默认值是64M;--ulimit :Ulimit配置。--squash :将 Dockerfile 中所有的操作压缩为一层。--tag, -t : 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。--network : 默认 default。在构建期间设置RUN指令的网络模式 |
docker history | 查看指定镜像的创建历史 | -H :以可读的格式打印镜像大小和日期,默认为true;--no-trunc :显示完整的提交记录;-q :仅列出提交记录ID。 |
docker save | 将指定镜像保存成 tar 归档文件 | -o :输出到的文件。 |
docker load | 导入使用 docker save 命令导出的镜像。 | --input , -i : 指定导入的文件,代替 STDIN。--quiet , -q : 精简输出信息。 |
docker import | 从归档文件中创建镜像 | -c :应用docker 指令创建镜像;-m :提交时的说明文字; |
三、容器命令
1.容器生命周期管理
命令 | 说明 | 其他参数 |
---|---|---|
docker run | 创建一个新的容器并运行一个命令 | -a stdin : 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;-d : 后台运行容器,并返回容器ID;-i : 以交互模式运行容器,通常与 -t 同时使用;-P : 随机端口映射,容器内部端口随机映射到主机的端口-p : 指定端口映射,格式为:主机(宿主)端口:容器端口-t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用;--name="nginx-lb" : 为容器指定一个名称;--dns 8.8.8.8 : 指定容器使用的DNS服务器,默认和宿主一致;--dns-search example.com : 指定容器DNS搜索域名,默认和宿主一致;-h "mars" : 指定容器的hostname;-e username="ritchie" : 设置环境变量;--env-file=[] : 从指定文件读入环境变量;--cpuset="0-2" or --cpuset="0,1,2" : 绑定容器到指定CPU运行;-m :设置容器使用内存最大值;--net="bridge" : 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;--link=[] : 添加链接到另一个容器;--expose=[] : 开放一个端口或一组端口;--volume , -v : 绑定一个卷 |
docker start | 启动一个或多个已经被停止的容器 | |
docker stop | 停止一个运行中的容器 | |
docker restart | 重启容器 | |
docker kill | 杀掉一个运行中的容器。 | -s :向容器发送一个信号 |
docker rm | 删除一个或多个容器。 | -f :通过 SIGKILL 信号强制删除一个运行中的容器。-l :移除容器间的网络连接,而非容器本身。-v :删除与容器关联的卷。 |
docker pause | 暂停容器中所有的进程。 | |
docker unpause | 恢复容器中所有的进程。 | |
docker create | 创建一个新的容器但不启动它 | |
docker exec | 在运行的容器中执行命令 | -d :分离模式: 在后台运行-i :即使没有附加也保持STDIN 打开-t :分配一个伪终端 |
2.容器操作
命令 | 说明 | 其他参数 |
---|---|---|
docker ps | 列出容器 | -a :显示所有的容器,包括未运行的。-f :根据条件过滤显示的内容。--format :指定返回值的模板文件。-l :显示最近创建的容器。-n :列出最近创建的n个容器。--no-trunc :不截断输出。-q :静默模式,只显示容器编号。-s :显示总的文件大小。 |
docker inspect | 获取容器/镜像的元数据。 | -f :指定返回值的模板文件。-s :显示总的文件大小。--type :为指定类型返回JSON。 |
docker top | 查看容器中运行的进程信息,支持 ps 命令参数。 | 容器运行时不一定有/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以使用docker top来实现查看container中正在运行的进程。 |
docker attach | 连接到正在运行中的容器 | 要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上–sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。 |
docker events | 从服务器获取实时事件 | -f :根据条件过滤事件;--since :从指定的时间戳后显示所有事件;--until :流水时间显示到指定的时间为止; |
docker logs | 获取容器的日志 | -f : 跟踪日志输出--since :显示某个开始时间的所有日志-t : 显示时间戳--tail :仅列出最新N条容器日志 |
docker wait | 阻塞运行直到容器停止,然后打印出它的退出代码。 | |
docker export | 将文件系统作为一个tar归档文件导出到STDOUT | |
docker port | 列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。 |
3.容器rootfs命令
命令 | 说明 | 其他参数 |
---|---|---|
docker commit | 从容器创建一个新的镜像。 | -a :提交的镜像作者;-c :使用Dockerfile指令来创建镜像;-m :提交时的说明文字;-p :在commit时,将容器暂停。 |
docker cp | 用于容器与主机之间的数据拷贝。 | -L :保持源目标中的链接 |
docker diff | 检查容器里文件结构的更改。 |
四、以下为命令测试
docker目前还只是学习了简单命令,这里没有跑过的命令后续学习会再补充。。。
Ⅰ.镜像命令
1.docker info
信息过多这里就不展示代码了,详细信息参考:docker info命令的使用和返回结果描述。
2.docker version
一般在刚安装完成后运行,查看是否安装成功。参考地址
[root@VM-0-12-centos ~]# docker version -f '{{.Server.Version}}'
20.10.2
[root@VM-0-12-centos ~]# docker version -f '{{json .}}'
{"Client":{"Platform":{"Name":"Docker Engine - Community"},"Version":"20.10.1","ApiVersion":"1.41","DefaultAPIVersion":"1.41","GitCommit":"831ebea","GoVersion":"go1.13.15","Os":"linux","Arch":"amd64","BuildTime":"Tue Dec 15 04:37:17 2020","Context":"default","Experimental":true},"Server":{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"20.10.2","Details":{"ApiVersion":"1.41","Arch":"amd64","BuildTime":"Mon Dec 28 16:16:13 2020","Experimental":"false","GitCommit":"8891c58","GoVersion":"go1.13.15","KernelVersion":"3.10.0-1127.19.1.el7.x86_64","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.4.3","Details":{"GitCommit":"269548fa27e0089a8b8278fc4fc781d7f65a939b"}},{"Name":"runc","Version":"1.0.0-rc92","Details":{"GitCommit":"ff819c7e9184c13b7c2607fe6c30ae19403a7aff"}},{"Name":"docker-init","Version":"0.19.0","Details":{"GitCommit":"de40ad0"}}],"Version":"20.10.2","ApiVersion":"1.41","MinAPIVersion":"1.12","GitCommit":"8891c58","GoVersion":"go1.13.15","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-1127.19.1.el7.x86_64","BuildTime":"2020-12-28T16:16:13.000000000+00:00"}}
[root@VM-0-12-centos ~]#
3.docker login
4.docker logout
5.docker pull
docker pull可以直接指定版本下载,不过需要注意的是版本号不要乱写,先在docker hub搜索查看该镜像存在的版本号
[root@VM-0-12-centos ~]# docker pull mysql
Using default tag: latest # 默认版本为最新版本
latest: Pulling from library/mysql
a076a628af6f: Already exists
f6c208f3f991: Pull complete # 分层下载 联合文件系统
88a9455a9165: Pull complete
406c9b8427c6: Pull complete
7c88599c0b25: Pull complete
25b5c6debdaf: Pull complete
43a5816f1617: Pull complete
69dd1fbf9190: Pull complete
5346a60dcee8: Downloading 19.3MB
5346a60dcee8: Downloading 19.83MB
fd04d935b852: Download complete
5346a60dcee8: Downloading 26.28MB
5346a60dcee8: Pull complete
ef28da371fc9: Pull complete
fd04d935b852: Pull complete
050c49742ea2: Pull complete
Digest: sha256:0fd2898dc1c946b34dceaccc3b80d38b1049285c1dab70df7480de62265d6213 #签名信息防伪标志
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址 docker pull mysql 等同于 docker pull docker.io/library/mysql:latest
[root@VM-0-12-centos ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
a076a628af6f: Already exists # 有一部分之前下载最新版mysql的时候就已经下载了,不需要重复下载
f6c208f3f991: Already exists
88a9455a9165: Already exists
406c9b8427c6: Already exists
7c88599c0b25: Already exists
25b5c6debdaf: Already exists
43a5816f1617: Already exists
7065aaa2655f: Pull complete
b4bc531db40f: Pull complete
8c3e9d7c9815: Pull complete
fadfb9734ed2: Pull complete
Digest: sha256:e08834258fcc0efd01df358222333919df53d4a0d9b2a54da05b204b822e3b7b
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@VM-0-12-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 cc8775c0fe94 47 hours ago 449MB
mysql latest d4c3cafb11d5 47 hours ago 545MB
php latest 5146e2c2c4ac 2 days ago 422MB
centos latest 300e315adb2f 5 weeks ago 209MB
hello-world latest bf756fb1ae65 12 months ago 13.3kB
[root@VM-0-12-centos ~]#
6.docker push
7.docker search
使用docker search 命令是会在 docker hub上去搜索镜像,命令行中搜索出来的结果就对应docker hub搜索结果
使用 --hlep
命令可以发现还有通过条件去筛选镜像。参考地址.
# 需要搜索的镜像 和 --filter 前后顺序不影响结果
docker search mysql --filter=STARS=3000 # 搜索STARS大于3000的mysql镜像
docker search --filter is-automated=true mysql # 搜索automated为true的mysql镜像
docker search --filter is-official=true mysql # 搜索official为true的mysql镜像
8.docker images
docker images
用于显示当前本地所有镜像,比较常用的可选项参数 -q
只显示id;-f
可用于筛选及格式化,可参考官方文档:参考地址
[root@VM-0-12-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest a347a5928046 3 weeks ago 545MB
centos latest 300e315adb2f 5 weeks ago 209MB
hello-world latest bf756fb1ae65 12 months ago 13.3kB
[root@VM-0-12-centos ~]# docker images -q
a347a5928046
300e315adb2f
bf756fb1ae65
[root@VM-0-12-centos ~]#
9.docker rmi
docker rmi
:删除镜像;
rm
:代表删除;
i
: 代表镜像 image;
[root@VM-0-12-centos ~]# docker rmi -f mysql #通过名称删除镜像 cc8775c0fe94
[root@VM-0-12-centos ~]# docker rmi -f cc8775c0fe94 #通过镜像id删除镜像
[root@VM-0-12-centos ~]# docker rmi -f $(docker images -aq) #删除所有镜像 【可以配合命令使用(跑路专用命令,谨慎使用!)】
10.docker tag
11.docker build
12.docker history
13.docker save
14.docker load
15.docker import
Ⅱ.容器命令
有了镜像才能创建容器
1.docker run
docker run [可选参数] IMAGE #新建容器并启动
#可选参数
--name="Name" 容器名
-d 后台运行方式(注意:使用-d的时候必须要有一个前台进程)
-it 使用交互运行方式,进入容器查看内容
-p 指定容器端口
-p 主机端口:容器端口(常用)
-p ip:主机端口:容器端口
-p 容器端口
容器退出命令
exit # 停止容器并退出
# 使用 docker exec 命令进入容器,在使用 exit 容器不会停止(docker exec会新开一个进程修改不影响正在云心的进程)
# docker attach 直接进入当前进程,如果使用exit会导致当前进程停止
ctrl + P + Q # 不停止容器并退出
2.docker start
启动容器
[root@VM-0-12-centos ~]# docker start 182c9fbdf892
182c9fbdf892
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
182c9fbdf892 centos "/bin/bash" 5 minutes ago Up 2 seconds silly_booth
[root@VM-0-12-centos ~]#
3.docker stop
停止容器
[root@VM-0-12-centos ~]# docker stop 182c9fbdf892
182c9fbdf892
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-0-12-centos ~]#
4.docker restart
重启容器
[root@VM-0-12-centos ~]# docker restart 182c9fbdf892
182c9fbdf892
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
182c9fbdf892 centos "/bin/bash" 5 minutes ago Up 2 seconds silly_booth
[root@VM-0-12-centos ~]#
5.docker kill
杀死容器
[root@VM-0-12-centos ~]# docker kill 182c9fbdf892
182c9fbdf892
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-0-12-centos ~]#
6.docker rm
删除容器,根据docker ps
获取容器id删除容器
-f
: 强制删除正在运行的容器
root@VM-0-12-centos ~]# docker rm 2bb22ae4e723 #无法删除正在运行的容器
Error response from daemon: You cannot remove a running container 2bb22ae4e7238dffeb366055bb536a027640f9297d720bb905ff0a14580b0d7c. Stop the container before attempting removal or force remove
[root@VM-0-12-centos ~]# docker rm -f 2bb22ae4e723
2bb22ae4e723
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-0-12-centos ~]#
7.docker pause
8.docker unpause
9.docker create
10.docker exec
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
:在运行的容器中执行命令;
docker exec
和docker attach
的区别:
docker exec # 进入容器后开启一个新的终端,操作都在这里(常用)
docker attach # 进入容器正在进行的终端不会启动新的进程(注意不要轻易使用exit退出,会停止容器并退出)
[root@VM-0-12-centos ~]# docker exec -it 6c065e13f40b /bin/bash
[root@6c065e13f40b /]# exit
exit
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6c065e13f40b centos "/bin/bash" 16 minutes ago Up 24 seconds trusting_bardeen
[root@VM-0-12-centos ~]# docker attach 6c065e13f40b
[root@6c065e13f40b /]# exit
exit
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-0-12-centos ~]#
11.docker ps
docker ps
: 列出当前正在运行的容器
docker ps -a
: 列出当前正在运行的容器和已经关闭的容器
docker ps -n=1
: 列出最近创建的n个容器。
docker ps -q
: 只显示容器编号。
更多参数使用参考官网
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bb22ae4e723 centos "/bin/bash" 8 days ago Up 8 days awesome_solomon
[root@VM-0-12-centos ~]# docker ps -a # 列出曾经运行过的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32f98138795d centos "/bin/bash" About a minute ago Exited (0) About a minute ago vigorous_mccarthy
2bb22ae4e723 centos "/bin/bash" 8 days ago Up 8 days awesome_solomon
cfedb6812dd3 centos "/bin/bash" 8 days ago Exited (0) 8 days ago unruffled_greider
c47ba7c9f0a0 centos "/bin/bash" 8 days ago Exited (0) 8 days ago nostalgic_ritchie
[root@VM-0-12-centos ~]# docker ps -a -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32f98138795d centos "/bin/bash" 9 minutes ago Exited (0) 9 minutes ago vigorous_mccarthy
[root@VM-0-12-centos ~]#
12.docker inspect
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
:获取容器/镜像的元数据。
[root@VM-0-12-centos ~]# docker inspect 8c836d276b6f
[
{
"Id": "8c836d276b6f4f2be5832809c6ac6605b97e9dcef40eedac14a62c840e41b7aa",
"Created": "2021-01-15T08:29:49.002037386Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 11470,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-01-15T08:29:49.369968335Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
"ResolvConfPath": "/var/lib/docker/containers/8c836d276b6f4f2be5832809c6ac6605b97e9dcef40eedac14a62c840e41b7aa/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/8c836d276b6f4f2be5832809c6ac6605b97e9dcef40eedac14a62c840e41b7aa/hostname",
"HostsPath": "/var/lib/docker/containers/8c836d276b6f4f2be5832809c6ac6605b97e9dcef40eedac14a62c840e41b7aa/hosts",
"LogPath": "/var/lib/docker/containers/8c836d276b6f4f2be5832809c6ac6605b97e9dcef40eedac14a62c840e41b7aa/8c836d276b6f4f2be5832809c6ac6605b97e9dcef40eedac14a62c840e41b7aa-json.log",
"Name": "/sleepy_benz",
"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,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/ec58a12336f1f6f38d23a5a1b81a9995b20674b697576f95b57e0cfb62462f21-init/diff:/var/lib/docker/overlay2/ac9d81ff8751a39f91425e2bf8dc1c5d482729a670908964ba3bedaadf93359f/diff",
"MergedDir": "/var/lib/docker/overlay2/ec58a12336f1f6f38d23a5a1b81a9995b20674b697576f95b57e0cfb62462f21/merged",
"UpperDir": "/var/lib/docker/overlay2/ec58a12336f1f6f38d23a5a1b81a9995b20674b697576f95b57e0cfb62462f21/diff",
"WorkDir": "/var/lib/docker/overlay2/ec58a12336f1f6f38d23a5a1b81a9995b20674b697576f95b57e0cfb62462f21/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "8c836d276b6f",
"Domainname": "",
"User": "",
"AttachStdin": true,
"AttachStdout": true,
"AttachStderr": true,
"Tty": true,
"OpenStdin": true,
"StdinOnce": true,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"Image": "centos",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.label-schema.build-date": "20201204",
"org.label-schema.license": "GPLv2",
"org.label-schema.name": "CentOS Base Image",
"org.label-schema.schema-version": "1.0",
"org.label-schema.vendor": "CentOS"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "fca0a3b4927c901a00a95d520e1c5b2ae306d8649a3494a72ca6c92e2bfb1419",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/fca0a3b4927c",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "5e21ecaeacc5b084039a1e58d643b6a7526ffbd238e0350089c511c1f8f4e645",
"Gateway": "172.18.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:12:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "9efeeeb617ca189cbb8e979603d81ad2b39e367c044f397cba41a88c43ce6e38",
"EndpointID": "5e21ecaeacc5b084039a1e58d643b6a7526ffbd238e0350089c511c1f8f4e645",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:02",
"DriverOpts": null
}
}
}
}
]
[root@VM-0-12-centos ~]#
13.docker top
docker top CONTAINER [ps OPTIONS]
:查看容器中运行的进程信息,支持 ps
命令参数
[root@VM-0-12-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c836d276b6f centos "/bin/bash" 18 seconds ago Up 18 seconds sleepy_benz
[root@VM-0-12-centos ~]# docker top 8c836d276b6f
UID PID PPID C STIME TTY TIME CMD
root 11470 11449 0 16:29 pts/0 00:00:00 /bin/bash
[root@VM-0-12-centos ~]# docker top $(docker ps -q)
UID PID PPID C STIME TTY TIME CMD
root 11470 11449 0 16:29 pts/0 00:00:00 /bin/bash
[root@VM-0-12-centos ~]#
14.docker attach
docker attach
和 docker exec
有点像,不同点比较请看 docker exec
[root@VM-0-12-centos ~]# docker attach 6c065e13f40b
[root@6c065e13f40b /]#
15.docker events
16.docker logs
17.docker wait
18.docker export
19.docker port
20.docker commit
21.docker cp
docker cp
: 用于容器与主机之间的数据拷贝。命令在容器外使用
[root@VM-0-12-centos ~]# ls
test.txt
[root@VM-0-12-centos ~]# pwd
/root
[root@VM-0-12-centos ~]# docker cp /root/test.txt 6c065e13f40b:/home
[root@VM-0-12-centos ~]# docker attach 6c065e13f40b
[root@6c065e13f40b /]# cd home/
[root@6c065e13f40b home]# ls
test.txt
[root@6c065e13f40b home]# touch test2.txt
[root@6c065e13f40b home]# ls
test.txt test2.txt
[root@6c065e13f40b home]# read escape sequence
[root@VM-0-12-centos ~]# docker cp 6c065e13f40b:/home/test2.txt /root
[root@VM-0-12-centos ~]# ls
test2.txt test.txt
[root@VM-0-12-centos ~]#
22.docker diff
总结
本篇文章仅供个人学习使用