Есть ли докер проверять в доке python apis? - PullRequest
0 голосов
/ 26 февраля 2019

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

Как-то так, я хотел бы сделать это в 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 ]

0 голосов
/ 26 февраля 2019

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

import docker
client = docker.APIClient(base_url='unix://var/run/docker.sock')
ip_address = client.inspect_container(<container_id>)['NetworkSettings']['Networks']['IPAddress']
0 голосов
/ 26 февраля 2019
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'])
0 голосов
/ 26 февраля 2019

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

Попробуйте выполнить следующее:

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

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

...