问题描述
我正在尝试在相同端口中设置不同的容器,但是为了避免冲突,请绑定到不同的本地IP。
我的测试使用以下基本图像:strm/helloworld-http
我这样做:
docker run -d --name test-a --hostname test-a -p 127.0.0.1:9000:80 strm/helloworld-http
docker run -d --name test-b --hostname test-b -p 127.0.0.2:9000:80 -p 127.0.0.1:9001:80 strm/helloworld-http
这将启动两个容器test-a
和test-b
。可以通过127.0.0.1:9000
访问“ A”,并且可以通过127.0.0.2:9000
和127.0.0.1:9001
它确实有效:
通过x.x.x.1端口9000访问的 test-a
和test-b
-而且最有趣的是--test-b
在端口9000中,作为另一个容器,但绑定到另一个IP x.x.x.2:
问题
鉴于它可以正常工作...为什么容器列表和检查报告test-b
奇怪的事情?
docker ps
正在报告127.0.0.1:49153
的{{1}}
而且,test-b
在检查时表现良好:
test-a
docker inspect test-a
[...]
"Ports": {
"80/tcp": [
{
"HostIp": "127.0.0.1","HostPort": "9000"
}
]
},
显示的结果与test-b
非常奇怪:
docker ps
另外,如果我尝试连接,它将失败(应该如此,因为我从未将端口49153设置为打开):
问题
如何制作docker inspect test-b
[...]
"Ports": {
"80/tcp": [
{
"HostIp": "127.0.0.1","HostPort": "49153"
}
]
},
和docker ps
命令来报告该端口绑定正确?
Docker版本
对于客户端和引擎,我都处于“版本:20.10.0-beta1”中。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)