创建新容器后,是否可以运行命令从主机获取容器的IP地址?

基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。


当前回答

有多种方法可以从主机获取容器的IP

docker inspect-f“{{range.NetworkSettings.Networks}}{{.IPAddress}}}{{end}”containerID

如果您记不住上面的命令,您可以始终执行以下操作

码头工人检查集装箱ID

它将在返回信息后返回Docker对象的低级信息。查找“网络”,然后在其中找到容器的“IPAddress”

其他回答

有多种方法可以从主机获取容器的IP

docker inspect-f“{{range.NetworkSettings.Networks}}{{.IPAddress}}}{{end}”containerID

如果您记不住上面的命令,您可以始终执行以下操作

码头工人检查集装箱ID

它将在返回信息后返回Docker对象的低级信息。查找“网络”,然后在其中找到容器的“IPAddress”

码头工人检查MY_CONTAINER | jq-r'。[].网络设置.网络[].IP地址'

plus

优雅的语法灵活(一旦你使用jq,你可以在任何地方使用它,有json,非常有用)强大的

需要安装jq(例如apt-get-installjq)

for containerId in $(sudo docker ps -a | cut -f1 -d' ' | grep -v CONTAINER); do
    echo " ContainerId - $containerId >>  $(sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $containerId) "
done

使用Python新API:

import docker

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

Docker是用Go编写的,它也使用Go语法进行查询。

要检查特定容器的IP地址,需要运行命令(-f表示“format”):

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

对于容器ID或名称,可以运行以下命令

docker container ls

它将列出每个正在运行的容器。