假设我们有一个 Docker 容器在我们的系统上运行,容器 ID 为“e350390fd549”,我想获取其内部 IP 地址。
首先,推荐的方法是使用docker inspect command
。
以下 linux 命令将打印有关 Docker 容器的详细信息,包括其内部 IP 地址:
# docker inspect e350390fd549 ... "NetworkSettings": { "Bridge": "docker0", "Gateway": "172.17.42.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "LinkLocalIPv6Address": "fe80::42:acff:fe11:2", "LinkLocalIPv6PrefixLen": 64, "MacAddress": "02:42:ac:11:00:02", "PortMapping": null, "Ports": {} ...
也可以跳闸默认的 docker inspect
docker 命令的输出以仅获取 IP 地址值:
# docker inspect -f '{{ .NetworkSettings.IPAddress }}' e350390fd549 172.17.0.2
根据在 docker 容器中运行的操作系统,我们还可以尝试在内部执行 ifconfig
命令,从而检索其 IP 地址:
docker exec -it e350390fd549 /sbin/ifconfig eth0 OR docker exec -it e350390fd549 ip add show eth0
另一种最后的替代方法是直接从位于 /var/lib/docker/containers/CONTAINER-ID
的 config.json
文件中检索容器的 IP 地址。
例如:
# grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" config.json 172.17.0.2 172.17.42.1
第一个 IP 地址是实际的容器 IP 地址,第二个 IP 地址是其网关。
日期:2020-07-07 20:54:43 来源:oir作者:oir