Docker Python API中是否有Docker检查?

时间:2019-02-26 09:17:59

标签: python docker dockerpy

我想获取容器的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']

3 个答案:

答案 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'])