【发布时间】:2018-09-24 01:42:14
【问题描述】:
我们有很多容器开始使用Rancher,每个容器都暴露多个端口。由于我们使用 Rancher 启动容器,因此默认情况下不会向主机公开任何端口。
$ docker container ls
显示 Rancher 启动的容器没有暴露的端口。 Rancher CLI rancher未安装。
如何列出rancher网络中暴露的端口?这可以使用docker 命令吗?还是我需要rancher?
【问题讨论】:
-
如果Rancher使用某种overlay network,数据包会被封装在一些上层协议(例如UDP)中。没有 Rancher 提供的工具无法检查容器端口,因为数据包是通过隧道传输的。
-
docker inspect有我正在寻找的所有信息。如何在命令行上提取端口?也许通过awk? -
查看
docker inspect --format ...。链接:docs.docker.com/engine/reference/commandline/inspect/… -
谢谢,很好的提示。我试过:
docker ps | awk '{print $1;}' | xargs docker inspect --format='{{.Config.Image}} {{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}'但你是对的,那里没有暴露端口:-( -
还可以查看 Rancher 的网络工作文档:rancher.com/docs/rancher/latest/en/rancher-services/networking
标签: docker networking ports rancher