创建新容器后,是否可以运行命令从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。
创建新容器后,是否可以运行命令从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。
当前回答
要获取容器的IP地址和主机端口,请执行以下操作:
docker inspect containerId | awk '/IPAddress/ || /HostPort/'
输出:
"HostPort": "4200"
"HostPort": "4200"
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
其他回答
对于窗口10:
docker inspect --format "{{ .NetworkSettings.IPAddress }}" containerId
这对我有用,我正在运行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”
仅为完整起见:
我真的很喜欢--format选项,但一开始我不知道它,所以我使用了一个简单的Python单行程序来获得相同的结果:
docker inspect <CONTAINER> |python -c 'import json,sys;obj=json.load(sys.stdin);print obj[0]["NetworkSettings"]["IPAddress"]'
码头工人检查MY_CONTAINER | jq-r'。[].网络设置.网络[].IP地址'
plus
优雅的语法灵活(一旦你使用jq,你可以在任何地方使用它,有json,非常有用)强大的
减
需要安装jq(例如apt-get-installjq)
Docker是用Go编写的,它也使用Go语法进行查询。
要检查特定容器的IP地址,需要运行命令(-f表示“format”):
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id_or_name
对于容器ID或名称,可以运行以下命令
docker container ls
它将列出每个正在运行的容器。