docker inspect 命令使用技巧

描述与简介

docker inspect是docker客户端的原生命令,用于查看docker对象的底层基础信息。包括容器的id、创建时间、运行状态、启动参数、目录挂载、网路配置等等。另外,该命令也可以用来查看docker镜像的信息。

官方描述如下:

Return low-level information on Docker objects

语法

语法如下:

docker inspect [OPTIONS] NAME|ID [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 -m json.tool

#使用jq美化

docker inspect --format="{{json .Mounts}}" container | jq

查看容器网络信息

查看网络信息可以使用下面命令:

#查看完整网络信息

docker inspect --format="{{json .NetworkSettings}}" container | jq

#查看网络端口映射

docker inspect --format="{{json .NetworkSettings.Ports}}" container | jq

# 查看容器的网络ip、网关等信息

docker inspect --format="{{json .NetworkSettings.Networks}}" container | jq

延伸学习

如果感兴趣,还可以充分利用这个--format参数,因为它是go的模板语法,差不多是可以写go的代码。例如上述的命令,json就是go的方法名

所以可以结合其他的go方法(如range,split)来耍杂技,本文就不班门弄斧了。

参考资料
docker官方文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Docker service命令详解(小结)

    在分布式应用程序中,应用程序的不同部分被称为"服务".例如,如果有一个视频共享网站,它可能包括一个用于将应用程序数据存储在数据库中的服务,一个在用户上传东西后在后台进行视频转码的服务,一个用于前端页面的服务等等. 服务实际上只是"生产中的容器".每个服务只运行一个映像,但它编码了镜像的运行方式 - 应该使用哪个端口,容器应运行多少个副本以满足性能要求等等. 伸缩服务可以更改运行该软件的容器实例的数量,从而为进程中的服务分配更多计算资源. 定义.运行和伸缩 Docke

  • Docker 基础之Dockerfile命令详解

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写定制镜像的 Dockerfile. 基本结构 Dockerfile 由一行行命令语句组成,并且支持已 # 开头的注释行.一般而言,Dockerfile 的内容分为四个部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令.例如: # This dockerfile uses the Ubu

  • Docker常用的清除容器镜像命令小结

    前言 Docker 是一个非常有趣的项目.它自己宣称可以减轻部署服务器的难度,当然我相信里面有炒作的成分.但是实际使用后,我觉得 Docker 的表现还是可圈可点的.这篇文章主要总结了Docker清除容器镜像常用的命令,下面来一起看看吧. 杀死所有running状态的容器 docker kill $(docker ps -q) 删除所有已经停止的容器 docker rm $(docker ps -a -q) 删除所有\'untagged/dangling\' ()状态的镜像 docker rmi

  • Docker 常用命令整理(实用篇)

    1. 查看docker信息(version.info) # 查看docker版本 docker version # 显示docker系统的信息 docker info 2. 对image的操作(search.pull.images.rmi.history) # 检索image docker search image_name # 下载image docker pull image_name #列出镜像列表; -a, --all=false Show all images; --no-trunc=

  • Win2008 r2服务器配置VPN服务器教程(图文详解)

    系统环境:WindowsServer2008R2Enterprise(完全安装) 1.配置准备工作 1.1.点击"开始"右边的"服务器管理器" 1.2.在"服务器管理器"里点击"角色" 1.3.在"角色"上点击右键选译"添加角色",点击"下一步" 1.4.在"角色"里选择"网络策略和访问服务",点击"下一步"

  • docker测试时候命令无法补全的解决方法

    发现问题 在输入docker swarm 然后tab键不能像这样进行提示 和补全 tab 键也无法补全nginx容器名,下面是运行截图 解决方法: yum install -y bash-completion 退出 后重进就正常了 总结 以上就是这篇文章的全部内容了,希望本文的内容对同样遇到这个问题的朋友们能有所帮助,如果有疑问大家可以留言交流.

  • Docker 清理命令集锦

    杀死所有正在运行的容器 复制代码 代码如下: docker kill $(docker ps -a -q) 删除所有已经停止的容器 复制代码 代码如下: docker rm $(docker ps -a -q) 删除所有未打 dangling 标签的镜像 复制代码 代码如下: docker rmi $(docker images -q -f dangling=true) 删除所有镜像 复制代码 代码如下: docker rmi $(docker images -q) 为这些命令创建别名 复制代码

  • docker常用命令操作方法

    继续docker的学习之旅,今天练习一些常用的命令: 一.镜像相关 1.1 列出本机所有镜像 后面的操作,都以ubuntu做为练习的目标. 另外:如果某些镜像文件不想要了,可以用下面的命令删除 1.2 删除镜像 docker rmi 镜像Id(即:1.1图中的IMAGE ID) 有时候删除会失败,比如:有一个容器正在使用该镜像文件.这时可以加参数-f 强制删除,如果不清楚每个命令可以加哪些参数,可以用 docker 命令 --help 查看帮助,比如: bin docker rmi --help

  • Docker run 命令的使用方法详解

    注意,本文基于最新的Docker 1.4文档翻译. Docker会在隔离的容器中运行进程.当运行 docker run命令时,Docker会启动一个进程,并为这个进程分配其独占的文件系统.网络资源和以此进程为根进程的进程组.在容器启动时,镜像可能已经定义了要运行的二进制文件.暴露的网络端口等,但是用户可以通过docker run命令重新定义(译者注:docker run可以控制一个容器运行时的行为,它可以覆盖docker build在构建镜像时的一些默认配置),这也是为什么run命令相比于其它命

  • Docker 修改文件是否需要重启(命令详解)

    Docker 修改文件是否需要重启 Docker 修改文件是否需要重启,在做项目的时候,经常会修改文件,对于命令不是多了解,用了也是试试的态度,这里就整理下该如何使用,提高工作效率. 需要修改一期项目中的代码了,之前每次都是用"试一下"的方式得出要不要启动,现在总结下哪些情况需要启动什么 1.首先再熟悉下每条命令的作用 docker-compose up -d -将会在后台启动并运行所有的容器 docker-compose stop -停止一个已经运行的容器,但不删除它,可通过dock

  • Dockerfile中常用命令汇总

    语法组成: 1 注释信息 2 指令---参数 [通常要大写|实质上不区分大小写] 3 顺序执行 4 第一个非注释行必须是from [基于那个基础镜像制作]   5 需要一个专用目录[自己创建] 6 首字目必须大写---Dockerfile 7 制作镜像依赖到文件或者包组时,必须提前准备至专用目录下 .dockerignore file --每一行中定义一个忽略文件     --创建在工作目录中     例如:pam.d/su* ..................................

随机推荐