Docker inspect 命令

本文版本:Docker version 1.12.6, build a0eb31f137e490718a8ba85eb5117c9e1b735a41

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

语法

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

容器ID或镜像ID
OPTIONS说明:

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

-f 用法详见参见docker inspect -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_ID
 3306/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> []}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值