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
                }
            }
        }
    }
]
相关文章
|
6月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
777 124
|
9月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
3072 75
|
10月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
1256 57
|
11月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
2005 30
|
9月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
2367 0
|
11月前
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
224 22
|
11月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
333 16
|
11月前
|
关系型数据库 MySQL Docker
|
11月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
683 5
|
NoSQL 应用服务中间件 Redis
Docker 常用命令整理
Docker 常用命令整理
375 1
下一篇
开通oss服务