📜  检查 docker ip (1)

📅  最后修改于: 2023-12-03 15:10:50.537000             🧑  作者: Mango

检查 Docker 容器 IP

在 Docker 中,每个容器都有一个自己的 IP 地址。在开发和运维时,检查容器 IP 地址是非常常见的操作。本文将介绍如何检查 Docker 容器 IP 地址。

使用 docker inspect 命令

docker inspect 命令可以返回容器的详细信息,其中包括 IP 地址。

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <容器名称或 ID>

上述命令中,--format 参数用于指定输出格式,{{ .NetworkSettings.IPAddress }} 则是指获取容器 IP 地址。

示例:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' my-container

输出结果:

172.17.0.2
使用 docker container inspect 命令

docker container inspect 命令与 docker inspect 命令类似,也可以返回容器的详细信息,包括 IP 地址。

docker container inspect --format '{{ .NetworkSettings.IPAddress }}' <容器名称或 ID>

示例:

docker container inspect --format '{{ .NetworkSettings.IPAddress }}' my-container

输出结果:

172.17.0.2

注意,docker container inspect 命令从 Docker 18.09 版本开始支持。在旧版本中,应使用 docker inspect 命令。

使用 docker network inspect 命令

如果要查看容器所在的网络信息,可以使用 docker network inspect 命令。该命令可以返回指定网络的详细信息,其中包括所有连接到该网络的容器信息。

docker network inspect <网络名称或 ID>

示例:

docker network inspect bridge

输出结果:

[
    {
        "Name": "bridge",
        "Id": "3cc29ec8481e5cb133040814c8831f257f3abc91930f44f89cdff93afe45bf17",
        "Created": "2021-11-16T10:23:51.6434382Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "6f6f1c3f1584dc841232b1f1bea3ac2eccb2bb32705dc2581e3cc158b1a3546d": {
                "Name": "my-container",
                "EndpointID": "60f1a0c5ee5b240e68cb30309f6efae5d10fab3accfcbfaaf9fc8bfdb8a67266",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

在上述输出结果中,Containers 字段列出了连接到该网络的所有容器信息,包括容器名称、Endpoint ID、MAC 地址、IPv4 地址和 IPv6 地址。