本文参考:菜鸟教程--》docker
https://www.runoob.com/?s=docker&page=5
Docker inspect 命令
| docker inspect : 获取容器/镜像的元数据。 |
| |
| 语法 |
| docker inspect [OPTIONS] NAME|ID [NAME|ID...] |
| OPTIONS说明: |
| |
| -f :指定返回值的模板文件。 |
| |
| -s :显示总的文件大小。 |
| |
| --type :为指定类型返回JSON。 |
| |
| 实例 |
| 获取镜像mysql:5.6的元信息。 |
| |
| runoob@runoob:~$ docker inspect mysql:5.6 |
| [ |
| { |
| "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec", |
| "RepoTags": [ |
| "mysql:5.6" |
| ], |
| "RepoDigests": [], |
| "Parent": "", |
| "Comment": "", |
| "Created": "2016-05-24T04:01:41.168371815Z", |
| "Container": "e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54", |
| "ContainerConfig": { |
| "Hostname": "b0cf605c7757", |
| "Domainname": "", |
| "User": "", |
| "AttachStdin": false, |
| "AttachStdout": false, |
| "AttachStderr": false, |
| "ExposedPorts": { |
| "3306/tcp": {} |
| }, |
| ... |
| 获取正在运行的容器mymysql的 IP。 |
| |
| runoob@runoob:~$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql |
| 172.17.0.3 |
Docker attach 命令
| docker attach :连接到正在运行中的容器。 |
| |
| 语法 |
| docker attach [OPTIONS] CONTAINER |
| 要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不会关闭容器。 |
| |
| 实例 |
| 容器mynginx将访问日志指到标准输出,连接到容器查看访问信息。 |
| |
| runoob@runoob:~$ docker attach --sig-proxy=false mynginx |
| 192.168.239.1 - - [10/Jul/2016:16:54:26 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" |
Docker logs 命令
| docker logs : 获取容器的日志 |
| |
| 语法 |
| docker logs [OPTIONS] CONTAINER |
| OPTIONS说明: |
| |
| -f : 跟踪日志输出 |
| |
| --since :显示某个开始时间的所有日志 |
| |
| -t : 显示时间戳 |
| |
| --tail :仅列出最新N条容器日志 |
| |
| 实例 |
| 跟踪查看容器mynginx的日志输出。 |
| |
| runoob@runoob:~$ docker logs -f mynginx |
| 192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" |
| 2016/07/10 16:53:33 [error] 5 |
| 192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://192.168.239.130/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" |
| 192.168.239.1 - - [10/Jul/2016:16:53:59 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" |
| ... |
| 查看容器mynginx从2016年7月1日后的最新10条日志。 |
| |
| docker logs --since="2016-07-01" --tail=10 mynginx |
Docker login/logout 命令
| docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub |
| |
| docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub |
| |
| 语法 |
| docker login [OPTIONS] [SERVER] |
| docker logout [OPTIONS] [SERVER] |
| OPTIONS说明: |
| |
| -u :登陆的用户名 |
| |
| -p :登陆的密码 |
| |
| 实例 |
| 登陆到Docker Hub |
| |
| docker login -u 用户名 -p 密码 |
| 登出Docker Hub |
| |
| docker logout |
Docker pause/unpause 命令
| docker pause :暂停容器中所有的进程。 |
| |
| docker unpause :恢复容器中所有的进程。 |
| |
| 语法 |
| docker pause [OPTIONS] CONTAINER [CONTAINER...] |
| docker unpause [OPTIONS] CONTAINER [CONTAINER...] |
| 实例 |
| 暂停数据库容器db01提供服务。 |
| |
| docker pause db01 |
| 恢复数据库容器db01提供服务。 |
| |
| docker unpause db01 |
Docker events 命令
| docker events : 从服务器获取实时事件 |
| |
| 语法 |
| docker events [OPTIONS] |
| OPTIONS说明: |
| |
| -f :根据条件过滤事件; |
| |
| --since :从指定的时间戳后显示所有事件; |
| |
| --until :流水时间显示到指定的时间为止; |
| |
| 实例 |
| 显示docker 2016年7月1日后的所有事件。 |
| |
| runoob@runoob:~/mysql$ docker events --since="1467302400" |
| 2016-07-08T19:44:54.501277677+08:00 network connect 66f958fd13dc4314ad20034e576d5c5eba72e0849dcc38ad9e8436314a4149d4 (container=b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64, name=bridge, type=bridge) |
| 2016-07-08T19:44:54.723876221+08:00 container start b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (image=nginx:latest, name=elegant_albattani) |
| 2016-07-08T19:44:54.726110498+08:00 container resize b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (height=39, image=nginx:latest, name=elegant_albattani, width=167) |
| 2016-07-08T19:46:22.137250899+08:00 container die b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (exitCode=0, image=nginx:latest, name=elegant_albattani) |
| ... |
| 显示docker 镜像为mysql:5.6 2016年7月1日后的相关事件。 |
| |
| runoob@runoob:~/mysql$ docker events -f "image"="mysql:5.6" --since="1467302400" |
| 2016-07-11T00:38:53.975174837+08:00 container start 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:51:17.022572452+08:00 container kill 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql, signal=9) |
| 2016-07-11T00:51:17.132532080+08:00 container die 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (exitCode=137, image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:51:17.514661357+08:00 container destroy 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:57:18.551984549+08:00 container create c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:57:18.557405864+08:00 container attach c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:57:18.844134112+08:00 container start c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:57:19.140141428+08:00 container die c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (exitCode=1, image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:58:05.941019136+08:00 container destroy c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:58:07.965128417+08:00 container create a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:58:08.188734598+08:00 container start a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) |
| 2016-07-11T00:58:20.010876777+08:00 container top a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) |
| 2016-07-11T01:06:01.395365098+08:00 container top a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) |
| 如果指定的时间是到秒级的,需要将时间转成时间戳。如果时间为日期的话,可以直接使用,如--since="2016-07-01"。 |
Docker start/stop/restart 命令
| docker start :启动一个或多个已经被停止的容器 |
| |
| docker stop :停止一个运行中的容器 |
| |
| docker restart :重启容器 |
| |
| 语法 |
| docker start [OPTIONS] CONTAINER [CONTAINER...] |
| docker stop [OPTIONS] CONTAINER [CONTAINER...] |
| docker restart [OPTIONS] CONTAINER [CONTAINER...] |
| 实例 |
| 启动已被停止的容器myrunoob |
| |
| docker start myrunoob |
| 停止运行中的容器myrunoob |
| |
| docker stop myrunoob |
| 重启容器myrunoob |
| |
| docker restart myrunoob |
一些docker的技巧和秘诀:
https://www.runoob.com/w3cnote/docker-tricks.html
Docker 使用容器来创建镜像:
https://www.runoob.com/w3cnote/docker-use-container-create-image.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)