我正在使用Docker版本17.06.2-ce,在CentOS Linux版本7.2.1511上构建cec0b72。
我的目标是让一个docker容器在其中一个主机端口上发布,并让信息对同一子网中的另一个系统可见。我的泊坞窗图片是friendlyhello image built in the getting started tutorial。我有an image of it on docker hub你可以用下面的命令拉。它在文件中公开端口80,然后用
调用图像docker run -d -p 8080:80 jeremydr2/get-started:part2
当我在运行容器的主机上curl localhost:8080
或curl 10.x.x.x:8080
时,我可以得到正确的响应(基本上是“hello world”)。当卷曲在另一台主机上时,我会得到一些HTML格式和
default "Access Denied" response (403)
Note that a successful response can take over a minute,但不成功的回复仍将立即生效。
From what I've read about this,我根本不应该乱用iptables来实现这一点,这很好,因为我不太了解网络。但是,我认为有些问题是错误的,因为iptables -t nat -L | grep 8080
没有返回任何内容,当我希望它有关于重定向或允许流量到该端口的线路时。我已经禁用了SELinux和firewalld,而是安装了iptables-services。
我可以使用其他命令在主机之间发送流量:
[root@host1 ~]# ncat -l 8001
[root@host2 ~]# echo "testing123" > /dev/tcp/<host1_ip_addr>/8001
所以我确信这不仅仅是一个配置错误的网络。 FWIW,我也尝试了使用docker run ...
的{{1}}命令,这也没有帮助。这已经是我生命中的两天了。如果有人有建议我会非常感激。
编辑:这绝对是一个错误配置的网络。我在家里重做它,它“按照每个人都说码头工的方式”工作。任何有关如何确定网络内容阻塞码头的建议都将不胜感激。
答案 0 :(得分:0)
这是因为我设立的代理人才能上网。在取消设置所有代理变量之后,我能够从其他系统卷曲到主机。有人告诉我,我设置的no_proxy
和NO_PROXY
变量足以阻止这种情况,但事实并非如此。
感谢所有看过这个的人。