创建新容器后,是否可以运行命令从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。
创建新容器后,是否可以运行命令从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。
当前回答
这将列出主机上的所有容器IP:
sudo docker ps -aq | while read line; do sudo docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $line ; done
其他回答
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
仅为完整起见:
我真的很喜欢--format选项,但一开始我不知道它,所以我使用了一个简单的Python单行程序来获得相同的结果:
docker inspect <CONTAINER> |python -c 'import json,sys;obj=json.load(sys.stdin);print obj[0]["NetworkSettings"]["IPAddress"]'
下面是一个快速有效的答案:
获取您的容器名称或ID:
docker container ls
然后获取IP:
docker inspect <container_ID Or container_name> |grep 'IPAddress'
获取端口:
docker inspect <container_ID Or container_name> |grep 'Port'
执行:
docker ps -a
这将显示活动的docker图像:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b733ae18c1c parzee/database "/usr/lib/postgresql/" 6 minutes ago Up 6 minutes 5432/tcp serene_babbage
使用CONTAINER ID值:
docker inspect <CONTAINER ID> | grep -w "IPAddress" | awk '{ print $2 }' | head -n 1 | cut -d "," -f1
"172.17.0.2"
这对我有用,我正在运行docker工具箱18.09.3,在windows 10家庭版:
键入命令“docker machine ls”
λdocker机器lsNAME活动驱动程序状态URL群集DOCKER错误default*virtualbox正在运行tcp://192.168.98.100:2376版本8.09.6
它将在URL列下显示实际IP。例如,“192.168.98.100”