Есть ли докер проверять в доке python apis?

Я хотел бы получить IP-адрес контейнеров, и я пытаюсь понять, как использовать Python Docker API.

Как-то так, я хотел бы сделать это в API Python

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 ответа

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

Это можно сделать с помощью docker-py, вы можете проверить следующее

Попробуйте следующее:

print client.inspect_container(container.id)['NetworkSettings']['Networks']['bridge']['IPAddress']

Обратите внимание, что вы можете зациклить на Networks (если у вас есть несколько сетей, и вы хотите все IP-адреса) или изменить bridge на соответствующее имя сети как bridge будет именем сети по умолчанию.

Код ниже поможет вам сделать это

import docker
client = docker.APIClient(base_url='unix://var/run/docker.sock')
ip_address = client.inspect_container(<container_id>)['NetworkSettings']['Networks']['IPAddress']
Другие вопросы по тегам