我想获取容器的ipaddress,并试图弄清楚如何使用python docker API。
这样的事情我想在python API中做到
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
我尝试过此操作,然后返回的IP地址为空
import docker
dockerClient = docker.from_env()
client = docker.APIClient(base_url='unix://var/run/docker.sock')
for container in dockerClient.containers.list():
print container.id
print "-------------"
print client.inspect_container(container.id)['NetworkSettings']['IPAddress']
答案 0 :(得分:2)
这可以使用docker-py
完成,您可以检查以下内容
尝试以下操作:
print client.inspect_container(container.id)['NetworkSettings']['Networks']['bridge']['IPAddress']
请注意,您可能想在
Networks
上循环(如果您有多个网络并且需要所有IP)或将bridge
更改为适当的网络名称,因为bridge
默认网络名称。
答案 1 :(得分:1)
下面的代码将帮助您完成
import docker
client = docker.APIClient(base_url='unix://var/run/docker.sock')
ip_address = client.inspect_container(<container_id>)['NetworkSettings']['Networks']['IPAddress']
答案 2 :(得分:0)
import docker
client = docker.APIClient(base_url='unix://var/run/docker.sock')
my_c = client.inspect_container('id_container')
print(my_c['NetworkSettings']['Networks']['bridge']['IPAddress'])