Docker检查格式检索端口映射

izi*_*ise 13 docker

我想使用docker inspect检索映射到容器的端口,我发现了类似的东西:

docker inspect --format=" {{ .NetworkSettings.Ports }} " containerid
Run Code Online (Sandbox Code Playgroud)

输出:

map[1234/tcp:[map[HostIp:0.0.0.0 HostPort:49159]] 3306/tcp:<nil> 4444/tcp:<nil> 4567/tcp:<nil> 4568/tcp:<nil>]
Run Code Online (Sandbox Code Playgroud)

但是我希望有这样的输出:

1234/tcp:49159
Run Code Online (Sandbox Code Playgroud)

可能吗 ?

lar*_*sks 14

docker port命令可能更有用; 它产生这样的输出:

$ docker port 0a7b4df54966
443/tcp -> 0.0.0.0:4430
80/tcp -> 0.0.0.0:8888
Run Code Online (Sandbox Code Playgroud)


use*_*097 5

另请参阅我的答案如何在进行Docker Inspect时获取ENV变量 我猜你可以适应并直接得到你想要的东西

  • 我使用了docker inspect --format'{{(index(index .NetworkSettings.Ports"8000/tcp")0).HostPort}}'87c因为它直接给出了我想要的结果,非常感谢. (2认同)
  • 要查找EXPOSE端口并清楚地列出它们,您可以使用`docker inspect --format ='{{range $ p,$ conf:= .Config.ExposedPorts}} {{$ p}} {{end}} 'containerid`,我发现[这里](https://github.com/docker/docker/issues/6313#issuecomment-45781046). (2认同)

小智 5

您可以在模板中使用索引:

--format '1234/tcp:{{ (index (index .NetworkSettings.Ports "1234/tcp") 0).HostPort }}'
Run Code Online (Sandbox Code Playgroud)

  • 具体来说, `--format '{{ (index (index .NetworkSettings.Ports "1234/tcp") 0).HostPort }}'` (2认同)

归档时间:

查看次数:

9751 次

最近记录:

9 年,10 月 前