Docker(35)- docker inspect 命令详解

简介: Docker(35)- docker inspect 命令详解

如果你还想从头学起 Docker,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1870863.html

 

作用


获取容器/镜像的元数据(JSON格式)

 

语法格式


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

 

options 说明

option 说明
-f 指定返回值的模板文件
-s 如果类型为容器,则显示文件总大小
--type 返回指定类型的JSON

 

重点

-f 的使用场景更有实用性

 

实际栗子


获取容器 IP

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

image.png

简单版本

docker inspect tomcat7 | grep IPAddress

image.png

就是内容会多了点,但有输出关键信息就行

 

获取容器 MAC 地址

docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $CONTAINER

image.png

简单版本

docker inspect tomcat7 | grep MacAddress

image.png

万物皆可 grep 哈哈哈

 

获取容器日志路径

docker inspect --format='{{.LogPath}}' $CONTAINER_ID

image.png

获取容器的镜像名

root@PL-TEST:~# docker inspect -f "{{.Config.Image}}" p100_syslog

registry.cn-shenzhen.com/image/syslog:1.0

 

获取容器目录挂载信息

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

image.png

可以看到这种输出结果不太友好

 

美化输出结果

#使用python的json模块美化
docker inspect --format="{{json .Mounts}}" container | python -m json.tool
#使用jq美化
docker inspect --format="{{json .Mounts}}" container | jq


image.png


获取容器网络信息

#查看完整网络信息
docker inspect --format="{{json .NetworkSettings}}" container | jq
#查看网络端口映射
docker inspect --format="{{json .NetworkSettings.Ports}}" container | jq
# 查看容器的网络ip、网关等信息
docker inspect --format="{{json .NetworkSettings.Networks}}" container | jq


获取容器特定端口的映射信息

docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID

到时候改 8787 这个端口就行

 

获取容器的元数据

docker inspect tomcat7

结果

[
    {
        "Id": "453d5e85856052a33f25954ea491648d4f465b073a0b13257734271534ce25ee",
        "Created": "2020-11-16T15:04:21.46225831Z",
        "Path": "catalina.sh",
        "Args": [
            "run"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 8151,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2020-11-16T16:52:39.762574155Z",
            "FinishedAt": "2020-11-16T16:32:59.955468647Z"
        },
        "Image": "sha256:d0f27b446f0a9cf5638da4c45bfdb9a6e0abb5b5f2b168a59c1242ec31934b39",
        "ResolvConfPath": "/var/lib/docker/containers/453d5e85856052a33f25954ea491648d4f465b073a0b13257734271534ce25ee/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/453d5e85856052a33f25954ea491648d4f465b073a0b13257734271534ce25ee/hostname",
        "HostsPath": "/var/lib/docker/containers/453d5e85856052a33f25954ea491648d4f465b073a0b13257734271534ce25ee/hosts",
        "LogPath": "/var/lib/docker/containers/453d5e85856052a33f25954ea491648d4f465b073a0b13257734271534ce25ee/453d5e85856052a33f25954ea491648d4f465b073a0b13257734271534ce25ee-json.log",
        "Name": "/tomcat7",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/usr/local/tomcat/webapps:/usr/local/tomcat/webapps"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "8080/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "9999"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Capabilities": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "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,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/f55d301001836d0bca303385ecf6981356823dab220a0f05cbf4101d0c4b6410-init/diff:/var/lib/docker/overlay2/42ba885fce62f2962b45c326cce2c29b1fd8e114fe549df69fef65b37ab230fa/diff:/var/lib/docker/overlay2/b94481ba0b495bb249e06173dee0e218c13f3e65f7fe23fd5b782c79bd30fe4e/diff:/var/lib/docker/overlay2/177d76f6dd0dca23e1ec9befe03326cbe23fa21a3efa4cfaa74c7f8792198a06/diff:/var/lib/docker/overlay2/651d96c0ee26ee6a5b4206eb812d0c5ba698f1deddfb97f7b943b1a6593b0528/diff:/var/lib/docker/overlay2/5a61caef4107e0883a82e23984c68b00e81c0ce59b603b75cfd9f6a21ca14a18/diff:/var/lib/docker/overlay2/e2dc6737c4504743ab26d2a8e25bae2eaf698493d61d1aff2b723cbff152af81/diff:/var/lib/docker/overlay2/fdca5f4d98e7a1c7a4e3ec17f64b311872fe3cbed6714b819631fea68834b5b8/diff:/var/lib/docker/overlay2/c235b69a918380eccb2202487e8b1581f8af7396ff23bf29bf512e049a10b251/diff:/var/lib/docker/overlay2/6dc73398e20a27e7aa90545d1098152f6e817c5e9cdf79a8c1b647aa86a51e0c/diff:/var/lib/docker/overlay2/140b83aec0bf703150319d5d27ba7192a3f3496486a1baac37809c656d802733/diff",
                "MergedDir": "/var/lib/docker/overlay2/f55d301001836d0bca303385ecf6981356823dab220a0f05cbf4101d0c4b6410/merged",
                "UpperDir": "/var/lib/docker/overlay2/f55d301001836d0bca303385ecf6981356823dab220a0f05cbf4101d0c4b6410/diff",
                "WorkDir": "/var/lib/docker/overlay2/f55d301001836d0bca303385ecf6981356823dab220a0f05cbf4101d0c4b6410/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/usr/local/tomcat/webapps",
                "Destination": "/usr/local/tomcat/webapps",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "453d5e858560",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "8080/tcp": {}
            },
            "Tty": false,
            "OpenStdin": true,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/tomcat/bin:/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "JAVA_HOME=/usr/local/openjdk-8",
                "JAVA_VERSION=8u265",
                "CATALINA_HOME=/usr/local/tomcat",
                "TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib",
                "LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib",
                "GPG_KEYS=05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 713DA88BE50911535FE716F5208B0AB1D63011C7 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23",
                "TOMCAT_MAJOR=7",
                "TOMCAT_VERSION=7.0.106",
                "TOMCAT_SHA512=f1fb2f3db9e66e66df120b058c216e72ec30df90abd80feda49773fa35c3c00cb56e4d264803696e1a71591d5cb60fcabf60f37e1774d549642ebe3eb902622d"
            ],
            "Cmd": [
                "catalina.sh",
                "run"
            ],
            "Image": "tomcat:7",
            "Volumes": null,
            "WorkingDir": "/usr/local/tomcat",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "42de54c029f2455fb86407ac397fa491a01819106c267c2ae8ca84c8f7955686",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "8080/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "9999"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/42de54c029f2",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "86302746bf794210a2d24b869c6a1175586124de8b3128c98e33150411f213c1",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "b6f97cbdc0ef2e334507c79e4e5aa99703e6bfc6735b199fc34e47d3725de3ee",
                    "EndpointID": "86302746bf794210a2d24b869c6a1175586124de8b3128c98e33150411f213c1",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]
相关文章
|
25天前
|
安全 Docker 容器
|
25天前
|
网络安全 数据安全/隐私保护 Docker
|
23天前
|
存储 监控 安全
|
23天前
|
存储 关系型数据库 MySQL
|
1月前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
772 1
|
1月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
129 0
|
1月前
|
Linux 网络安全 Docker
安装后无法使用 Docker 命令
【10月更文挑战第3天】
176 2
|
1月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
|
1月前
|
运维 数据库 开发者
docker回顾--docker compose详细解释,安装,与常用命令
docker回顾--docker compose详细解释,安装,与常用命令
115 1
|
1月前
|
监控 Docker 容器
docker常用命令
本文汇总了Docker的常用命令,涵盖了镜像、容器、网络、数据卷的管理,以及系统信息查看、镜像构建、登录和注销Docker Hub,还有容器内部文件操作和事件监控,最后介绍了Docker Compose的使用方法。
27 0