当我在一台 docker 主机上为同一个 Web 映像启动两个 docker 容器时。
- 两个docker容器监听同一个端口
5000
- port
5000
两个容器的映射到docker主机的不同端口:49155
, 49156
- 要从外部 docker 主机访问这两个容器,需要访问 docker 主机 ip 和端口
49155
or 49156
有没有解决方案可以通过 ip 和端口从外部 docker 主机访问 docker 容器,x.x.x.x:5000
,没有端口映射?
不同dock主机上的所有docker容器都可以直接互相访问。
您可以通过主机上的 IP 别名来实现此目的。
首先,在主机上添加一个与主接口具有不同 IP 地址的虚拟接口。我们将调用主接口eth0
有IP10.0.0.10
,和虚拟接口eth0:1
有IP地址10.0.0.11
.
ifconfig eth0:1 10.0.0.11 netmask 255.255.255.0 up
现在运行容器并将端口 5000 映射到相应的接口。例如:
docker run -p 10.0.0.10:5000:5000 -name container1 <someimage> <somecommand>
docker run -p 10.0.0.11:5000:5000 -name container2 <someimage> <somecommand>
现在您可以在外部使用不同的 IP 地址访问端口 5000 上的每个容器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)