+-

我在CentOS docker主机上有一个CentOS docker容器.当我使用此命令运行docker镜像时
docker run -d --net=host -p 8777:8777 ceilometer:1.x
docker容器获取主机的IP但没有分配端口.如果我在没有“–net = host”的情况下运行相同的命令:
docker run -d -p 8777:8777 ceilometer:1.x
docker暴露端口,但使用不同的ip. docker版本是1.10.1.我希望docker容器与暴露端口的主机具有相同的ip.我还在Dockerfile中提到了EXPOSE 8777指令,但在docker run命令中提到“–net = host”时没有用.
最佳答案
如果您使用–net = host容器共享主机的网络堆栈,并且主机的所有接口都可用于容器,( as per the run reference for docker)
如果您已经共享了所有内容,则无需将8777明确映射到8777.
实际上实现映射的东西会很奇怪:映射1234到8777会让主机也在8777上监听吗?这就是为什么你没有看到任何端口分配.
只需省略–net = host并尝试在主机上连接到8777,它将桥接到容器上的8777.确保您的容器与其使用的实际IP地址无关.外面的世界只会看到主机IP.
点击查看更多相关文章
转载注明原文:centos – 当docker run命令中提到–net = host时,Docker容器不会公开端口 - 乐贴网