如何使用 docker SDK for python 获取 docker 容器的 IP 地址?

How o get the IP address of docker container using docker SDK for python?

我正在用 network_mode = bridge 启动一个容器,当我在终端检查网络容器时,我得到了容器 IP 地址。

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id

但是,我无法从容器对象中获取此 IP 地址。 有没有不在网络对象中搜索容器的解决方案?

这是一个例子:

import docker

client = docker.DockerClient()
container = client.containers.get("magical_meitner")
ip_add = container.attrs['NetworkSettings']['IPAddress']
print(ip_add)

如果 IP 不是 return 来自 container.attrs['NetworkSettings']['IPAddress'] 的建议 ,请尝试以下操作:

network_name = "my_net"
container["NetworkSettings"]["Networks"][network_name]["IPAddress"]

对我来说,当容器是使用 docker-compose 和外部网络创建时就是这种情况。