dockerinspect命令使⽤技巧
描述与简介
docker inspect是docker客户端的原⽣命令,⽤于查看docker对象的底层基础信息。包括容器的id、创建时间、运⾏状态、启动参数、⽬录挂载、⽹路配置等等。另外,该命令也可以⽤来查看docker镜像的信息。
官⽅描述如下:
Return low-level information on Docker objects
语法
语法如下:
docker inspect [OPTIONS] NAME|ID []
OPTIONS选项
下表摘⾃官⽹
Name, shorthand Default Description
--format , -f Format the output using the given Go template
--size , -s Display total file sizes if the type is container
--type Return JSON for specified type
如上表,--type⽤于指定docker对象类型,如:container, image。在容器与镜像同名时可以使⽤,使⽤频率较低。⽐如,当你机器上⼀个容器名为redis,⼀个镜像为redis:latest,则可以使⽤下⾯的命令查看镜像信息。不使⽤type参数,则返回容器信息:
# 查看redis:latest镜像信息
docker inspect --type=image redis
# 查看redis容器信息
docker inspect redis
--size⽤于查看容器的⽂件⼤⼩,加上该参数,输出的结果中会包含SizeRootFs和SizeRw(⽬前我还
不是很确定这两个值的含义,望知情者告知)。
以上两个参数都是⽤得⽐较少的,--format实⽤性最⼤,使⽤频率也⽐较⾼。从表格描述可知,传⼊的参数值应该是go语⾔的模板。它很强⼤,可以做很多go函数的操作,由于我的go语⾔还没有⼊门,所以这⾥就不说太多耍杂技的了,以免翻车,下⾯说⼀下常⽤的。
实践
在实践中,我们往往只需要查看其中部分信息,⽐如⽬录挂载信息、⽹络信息。⽽直接输⼊docker inspect container时,会输出容器的所有信息,就显得⽐较臃肿,我们在命令⾏中翻页还不⽅便。此时,--format的实⽤性就体现出来了。实践中的常⽤操作如下
查看⽬录挂载信息
输⼊如下命令, 则会输出容器的Mounts信息,可以看到容器中各个⽬录在宿主机的具体挂载位置。
docker inspect --format="{{json .Mounts}}" container
参数中的json是go语⾔的⽅法名,后⾯是取Mounts的值做json化处理。去掉json也是可以的。
如果觉得这样输⼊还是不太好看,可以对json再作进⼀步处理,如使⽤python的json模块或者jq美化输出。命令如下:
#使⽤python的json模块美化
docker inspect --format="{{json .Mounts}}" container | python -l
#使⽤jq美化
docker inspect --format="{{json .Mounts}}" container | jq
查看容器⽹络信息
查看⽹络信息可以使⽤下⾯命令:
#查看完整⽹络信息
docker inspect --format="{{json .NetworkSettings}}" container | jq
#查看⽹络端⼝映射
docker inspect --format="{{json .NetworkSettings.Ports}}" container | jq
# 查看容器的⽹络ip、⽹关等信息
go语言开发环境搭建docker inspect --format="{{json .NetworkSettings.Networks}}" container | jq
延伸学习
如果感兴趣,还可以充分利⽤这个--format参数,因为它是go的模板语法,差不多是可以写go的代码。例如上述的命令,json 就是go的⽅法名
所以可以结合其他的go⽅法(如range,split)来耍杂技,本⽂就不班门弄斧了。
参考资料
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。