当前位置: 代码迷 >> 综合 >> Docker inspect 命令
  详细解决方案

Docker inspect 命令

热度:11   发布时间:2024-01-24 08:24:40.0

本文版本:Docker version 1.12.6, build a0eb31f137e490718a8ba85eb5117c9e1b735a41

docker inspect : 获取容器/镜像的元数据。

语法

docker inspect [OPTIONS] NAME|ID [NAME|ID…]

容器ID或镜像ID
OPTIONS说明:

-f :指定返回值的模板文件。

-s :显示总的文件大小。

–type :为指定类型返回JSON。

获取镜像mysql:5.6的元信息

[{"Id": "sha256:3ed1080b793fc4a10cab741a04ce090caf1ad2932cbcc679b6587624af9f6157","RepoTags": ["docker.artnj.test.com.cn/cci/mysql:5.6"],"RepoDigests": ["docker.artnj.test.com.cn/cci/mysql@sha256:64d700fe4d28bad980507ff893f341702c2273d0a42ea4da461163930276b09b"],"Parent": "","Comment": "","Created": "2019-06-10T23:46:27.411001795Z","Container": "9c48ed588eb1d0e8a88c36adec31d76b4d683cb522fb20d9582f4c42fcab8e0d","ContainerConfig": {"Hostname": "9c48ed588eb1","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"3306/tcp": {}},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","GOSU_VERSION=1.7","MYSQL_MAJOR=5.6","MYSQL_VERSION=5.6.44-1debian9"],"Cmd": ["/bin/sh","-c","#(nop) ","CMD [\"mysqld\"]"],"ArgsEscaped": true,"Image": "sha256:b08878951f5677e5cdc610df30e5901a8238c92e097f5ca646be18c145d6cdda","Volumes": {"/var/lib/mysql": {}},"WorkingDir": "","Entrypoint": ["docker-entrypoint.sh"],"OnBuild": null,"Labels": {}},"DockerVersion": "18.06.1-ce","Author": "","Config": {"Hostname": "","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"3306/tcp": {}},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","GOSU_VERSION=1.7","MYSQL_MAJOR=5.6","MYSQL_VERSION=5.6.44-1debian9"],"Cmd": ["mysqld"],"ArgsEscaped": true,"Image": "sha256:b08878951f5677e5cdc610df30e5901a8238c92e097f5ca646be18c145d6cdda","Volumes": {"/var/lib/mysql": {}},"WorkingDir": "","Entrypoint": ["docker-entrypoint.sh"],"OnBuild": null,"Labels": null},"Architecture": "amd64","Os": "linux","Size": 256398124,"VirtualSize": 256398124,"GraphDriver": {"Name": "overlay2","Data": {"LowerDir": "/home/emsdata/docker/overlay2/f0749d265dc59daae49ee461f15e677a232531eda0c50d7c3dbca1ce22873ccb/diff:/home/emsdata/docker/overlay2/fa4ebda97ab3de379bac349bf76aa736aaa3f68d4158a7eb93f421c69fe1191f/diff:/home/emsdata/docker/overlay2/699958532b4d00264d3712df127966136ec76ee8e83ed09233656c4cdc619798/diff:/home/emsdata/docker/overlay2/74b44d625c12046dde5eb1ee5e5d79dcb919065c8a0de3cee592593cbe472230/diff:/home/emsdata/docker/overlay2/3086261bb85fd60a59aca1f3609712c682330606ce986dfaa1482642cc7acd33/diff:/home/emsdata/docker/overlay2/fa4e61448191900bebfba564d7692e295dfdfe48b6cdfa2adb742ac4a9ec0349/diff:/home/emsdata/docker/overlay2/9c06f6f60cc27bbb06daf14104ff214bb88179094c79115ab3a5a0a00fb501fe/diff:/home/emsdata/docker/overlay2/8239ed480b96ec949f537381531112fd46566eb87a57d5a0e074cf6f26583e2b/diff:/home/emsdata/docker/overlay2/ab4b1a2ea4a0f7f43fd91cdea2a72d596cd14e3763bc15a9adcb0d6e99a55377/diff:/home/emsdata/docker/overlay2/7bd5dbda96f35e74962f1757b0e035c3b17d86b352d3e4afe3a78a7ef421d3be/diff","MergedDir": "/home/emsdata/docker/overlay2/2986c967aedf24b23fefbe292ddd2fc5eaf1abac146ffdd180765eac0fef20ad/merged","UpperDir": "/home/emsdata/docker/overlay2/2986c967aedf24b23fefbe292ddd2fc5eaf1abac146ffdd180765eac0fef20ad/diff","WorkDir": "/home/emsdata/docker/overlay2/2986c967aedf24b23fefbe292ddd2fc5eaf1abac146ffdd180765eac0fef20ad/work"}},"RootFS": {"Type": "layers","Layers": ["sha256:cf5b3c6798f77b1f78bf4e297b27cfa5b6caa982f04caeb5de7d13c255fd7a1e","sha256:b686f68f8333dcd3c61717b236ead61e76623eca5ca52310c4efba5632aef6fc","sha256:b983f63f4c271ebf11edaa04de105c35ceddf1cbe152db47dc7f871da53454db","sha256:cf1d44aef62da0cec4ca16fb23d62f935c542f859c88704288bd4a8da0a9454f","sha256:17d2cfdb93fc387257be73e4517d0fbb944c420894df66807899658e510ec7f1","sha256:c70e6a41f98cad06754f64519b0798fcccd55fb579b644f2c39d37d7cdcfa2fc","sha256:1e5cc0d1c33d8a28720dfe93659d8a8e10978774eb6fa5f2f7ae63a05d98b721","sha256:999b5130f4e92686f78f1b105efee9a8a1cdaea3e7551d9d40374b81ae60cd81","sha256:a5fcf7bb9e94aef821e8769f54e573019bb3a34d3c8efc399c5b3eaa64568f23","sha256:1086cb31b2c49225b0804a232806389d4c0dfeb0c5cd9bb6e79e208c582fc900","sha256:3102b0030161820328562a99291bfd43368fd6fa67301ecf2f69c13c05561035"]}}
]

获取镜像mysql:5.6 实例的元信息

runoob@runoob:~$ docker inspect mysqlId
[{"Id": "d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423","Created": "2019-12-21T08:06:52.419384874Z","Path": "docker-entrypoint.sh","Args": ["mysqld"],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 31054,"ExitCode": 0,"Error": "","StartedAt": "2019-12-21T08:06:54.372985158Z","FinishedAt": "0001-01-01T00:00:00Z"},"Image": "sha256:3ed1080b793fc4a10cab741a04ce090caf1ad2932cbcc679b6587624af9f6157","ResolvConfPath": "/home/emsdata/docker/containers/d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423/resolv.conf","HostnamePath": "/home/emsdata/docker/containers/d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423/hostname","HostsPath": "/home/emsdata/docker/containers/d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423/hosts","LogPath": "/home/emsdata/docker/containers/d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423/d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423-json.log","Name": "/backstabbing_carson","RestartCount": 0,"Driver": "overlay2","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","ExecIDs": null,"HostConfig": {"Binds": null,"ContainerIDFile": "","LogConfig": {"Type": "json-file","Config": {"max-file": "5","max-size": "10M"}},"NetworkMode": "default","PortBindings": {"3306/tcp": [{"HostIp": "","HostPort": "3306"}]},"RestartPolicy": {"Name": "no","MaximumRetryCount": 0},"AutoRemove": false,"VolumeDriver": "","VolumesFrom": null,"CapAdd": null,"CapDrop": null,"Dns": [],"DnsOptions": [],"DnsSearch": [],"ExtraHosts": null,"GroupAdd": null,"IpcMode": "","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,"CgroupParent": "","BlkioWeight": 0,"BlkioWeightDevice": null,"BlkioDeviceReadBps": null,"BlkioDeviceWriteBps": null,"BlkioDeviceReadIOps": null,"BlkioDeviceWriteIOps": null,"CpuPeriod": 0,"CpuQuota": 0,"CpuRealtimePeriod": 0,"CpuRealtimeRuntime": 0,"CpusetCpus": "","CpusetMems": "","Devices": [],"DiskQuota": 0,"KernelMemory": 0,"MemoryReservation": 0,"MemorySwap": 0,"MemorySwappiness": -1,"OomKillDisable": false,"PidsLimit": 0,"Ulimits": null,"CpuCount": 0,"CpuPercent": 0,"IOMaximumIOps": 0,"IOMaximumBandwidth": 0},"GraphDriver": {"Name": "overlay2","Data": {"LowerDir": "/home/emsdata/docker/overlay2/cf993cdf788bc4b1d8b05514e9affb5112066ad40a1fcb0d04f39c4da4e501a5-init/diff:/home/emsdata/docker/overlay2/2986c967aedf24b23fefbe292ddd2fc5eaf1abac146ffdd180765eac0fef20ad/diff:/home/emsdata/docker/overlay2/f0749d265dc59daae49ee461f15e677a232531eda0c50d7c3dbca1ce22873ccb/diff:/home/emsdata/docker/overlay2/fa4ebda97ab3de379bac349bf76aa736aaa3f68d4158a7eb93f421c69fe1191f/diff:/home/emsdata/docker/overlay2/699958532b4d00264d3712df127966136ec76ee8e83ed09233656c4cdc619798/diff:/home/emsdata/docker/overlay2/74b44d625c12046dde5eb1ee5e5d79dcb919065c8a0de3cee592593cbe472230/diff:/home/emsdata/docker/overlay2/3086261bb85fd60a59aca1f3609712c682330606ce986dfaa1482642cc7acd33/diff:/home/emsdata/docker/overlay2/fa4e61448191900bebfba564d7692e295dfdfe48b6cdfa2adb742ac4a9ec0349/diff:/home/emsdata/docker/overlay2/9c06f6f60cc27bbb06daf14104ff214bb88179094c79115ab3a5a0a00fb501fe/diff:/home/emsdata/docker/overlay2/8239ed480b96ec949f537381531112fd46566eb87a57d5a0e074cf6f26583e2b/diff:/home/emsdata/docker/overlay2/ab4b1a2ea4a0f7f43fd91cdea2a72d596cd14e3763bc15a9adcb0d6e99a55377/diff:/home/emsdata/docker/overlay2/7bd5dbda96f35e74962f1757b0e035c3b17d86b352d3e4afe3a78a7ef421d3be/diff","MergedDir": "/home/emsdata/docker/overlay2/cf993cdf788bc4b1d8b05514e9affb5112066ad40a1fcb0d04f39c4da4e501a5/merged","UpperDir": "/home/emsdata/docker/overlay2/cf993cdf788bc4b1d8b05514e9affb5112066ad40a1fcb0d04f39c4da4e501a5/diff","WorkDir": "/home/emsdata/docker/overlay2/cf993cdf788bc4b1d8b05514e9affb5112066ad40a1fcb0d04f39c4da4e501a5/work"}},"Mounts": [{"Type": "volume","Name": "af1d7290422301204b8bca43542e1a26a6241e8d0761f04e34e8a0bb5357021c","Source": "/home/emsdata/docker/volumes/af1d7290422301204b8bca43542e1a26a6241e8d0761f04e34e8a0bb5357021c/_data","Destination": "/var/lib/mysql","Driver": "local","Mode": "","RW": true,"Propagation": ""}],"Config": {"Hostname": "d2a1eca7fba4","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"3306/tcp": {}},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["MYSQL_ROOT_PASSWORD=123456","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","GOSU_VERSION=1.7","MYSQL_MAJOR=5.6","MYSQL_VERSION=5.6.44-1debian9"],"Cmd": ["mysqld"],"Image": "docker.artnj.test.com.cn/cci/mysql:5.6","Volumes": {"/var/lib/mysql": {}},"WorkingDir": "","Entrypoint": ["docker-entrypoint.sh"],"OnBuild": null,"Labels": {}},"NetworkSettings": {"Bridge": "","SandboxID": "333d5dfae74da6f121e2b763c56ccc6005abfbf58f2bb1657494b0d94787244f","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {"3306/tcp": [{"HostIp": "0.0.0.0","HostPort": "3306"}]},"SandboxKey": "/var/run/docker/netns/333d5dfae74d","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "824a6f6acb559fcc39639e67384dcd628647b6609c103cd27b74cf0d59dd9695","Gateway": "172.17.0.1","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "172.17.0.9","IPPrefixLen": 16,"IPv6Gateway": "","MacAddress": "02:42:ac:11:00:09","Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "c2585d639e79d77290705a47ff4e223bbdbdd36b452c24aedd37e1f7db3396ac","EndpointID": "824a6f6acb559fcc39639e67384dcd628647b6609c103cd27b74cf0d59dd9695","Gateway": "172.17.0.1","IPAddress": "172.17.0.9","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:09"}}}}
]

过滤元信息例子
IP address:

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
172.17.0.9

MAC address:

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
02:42:ac:11:00:09

log 日志路径

$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
/home/emsdata/docker/containers/d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423/d2a1eca7fba4e80c2c3e373bc6746a15475936e72b735f1d71bb776282940423-json.log

image 名称:

$ docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
docker.artnj.test.com.cn/cci/mysql:5.6

列出所有端口映射
You can loop over arrays and maps in the results to produce simple text output:

$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID3306/tcp -> 3306

Find a specific port mapping 有问题
The .Field syntax doesn’t work when the field name begins with a number, but the template language’s index function does. The .NetworkSettings.Ports section contains a map of the internal port mappings to a list of external address/port objects. To grab just the numeric public port, you use index to find the specific port map, and then index 0 contains the first object inside of that. Then we ask for the HostPort field to get the public address.

$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
失败,报Template parsing error: template: :1:3: executing "" at <index (index .Networ...>: error calling index: index of untyped nil

获取 JSON 格式输出
默认情况下,获取一个字段时,若是字段,则仅返回的值,不便查看;json格式可以指定,方便查看

$ docker inspect --format='{{json .Config}}' $INSTANCE_ID
{"Hostname":"d2a1eca7fba4","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"ExposedPorts":{"3306/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["MYSQL_ROOT_PASSWORD=123456","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","GOSU_VERSION=1.7","MYSQL_MAJOR=5.6","MYSQL_VERSION=5.6.44-1debian9"],"Cmd":["mysqld"],"Image":"docker.artnj.zte.com.cn/cci/mysql:5.6","Volumes":{"/var/lib/mysql":{}},"WorkingDir":"","Entrypoint":["docker-entrypoint.sh"],"OnBuild":null,"Labels":{}}

不带json时

$ docker inspect --format='{{ .Config}}' d2a1eca7fba4
{d2a1eca7fba4   false false false map[3306/tcp:{}] false false false [MYSQL_ROOT_PASSWORD=123456 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin GOSU_VERSION=1.7 MYSQL_MAJOR=5.6 MYSQL_VERSION=5.6.44-1debian9] [mysqld] <nil> false docker.artnj.zte.com.cn/cci/mysql:5.6 map[/var/lib/mysql:{}]  [docker-entrypoint.sh] false  [] map[]  <nil> []}