Tiago Ramalho
Tiago Ramalho

Reputation: 93

How to get the IP address of Docker container using Docker SDK for Python?

I am launching a container with network_mode = bridge, when I inspect the network container in the terminal I get the container IP address.

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

However, I can't get this IP address from the container object. Is there any solution without searching the container in the network object?

Upvotes: 7

Views: 11923

Answers (3)

LinPy
LinPy

Reputation: 18578

Here is an example:

import docker

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

You may need to call container.reload() first to update the attributes (reference).

Upvotes: 19

edsion zhang
edsion zhang

Reputation: 21

container.attrs.get("NetworkSettings", {}).get("Networks", {}).get(network.name, {}).get("IPAddress")

Upvotes: 1

Gulzar
Gulzar

Reputation: 27896

If the IP doesn't return from container.attrs['NetworkSettings']['IPAddress'] as suggested here, try the following:

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

For me, this was the case when the containers were created with docker-compose, with an external network.

Upvotes: 3

Related Questions