我正在尝试获取docker容器的IP,并且需要以逗号分隔的方式传递IP。
使用以下命令,我可以获取容器ip
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave")
输出->
> 10.17.0.4
> 10.17.0.3
> 10.17.0.2
需要帮助将输出IP保存到变量并处理IP以逗号分隔,例如 10.17.0.4,10.17.0.3,10.17.0.2
答案 0 :(得分:1)
您正在使用旧版本的Docker(信息)。因此,以下命令在新版本的Docker中将不起作用
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave") | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'
在新版本的Docker中,您可以尝试以下命令。
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q --filter ancestor=adminer) | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'
您可以在新版本中使用以下命令基于图像进行过滤,这将返回所有容器ID,其他明智的旧命令将仅返回新版本中的一个容器。
docker ps -q --filter ancestor=image_name