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

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


当前回答

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

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

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

码头工人检查集装箱ID

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

其他回答

您可以使用docker inspect<container id>。

例如:

CID=$(docker run -d -p 4321 base nc -lk 4321);
docker inspect $CID

只是另一个经典的解决方案:

docker ps -aq | xargs docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}'

inspect的--format选项起了作用。

现代Docker客户端语法为:

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

旧Docker客户端语法为:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id

这些命令将返回Docker容器的IP地址。

如评论中所述:如果您使用Windows,请在大括号周围使用双引号“而不是单引号”。

docker inspect CONTAINER_ID | grep "IPAddress"

您可以将-i添加到grep中以忽略该情况,那么即使以下操作也会奏效:

docker inspect CONTAINER_ID | grep -i "IPaDDreSS"

Docker inspect用于打印所有容器ip及其各自的名称

docker ps -q | xargs -n 1 docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} {{ .Name }}' | sed 's/ \// /'