访问其他主机上的Docker容器时的HTTP 403响应

我正在使用Docker版本17.06.2-ce,在CentOS Linux release 7.2.1511上构buildcec0b72。

我的目标是让一个docker容器在主机的一个端口上发布,并让信息对同一子网中的另一个系统可见。 我的docker图片是入门教程中内置的friendlyhello图片 。 我有一个Docker集线器上的图像 ,你可以使用下面的命令。 它暴露了文件内的80端口,然后我打电话给图像

docker run -d -p 8080:80 jeremydr2/get-started:part2 

当我在运行容器的主机上curl localhost:8080或者curl 10.xxx:8080时,我可以得到正确的响应(基本上是“hello world”)。 当在另一个主机上curl时,我得到一些html格式和

  default "Access Denied" response (403) 

请注意,成功的响应可能需要一分多钟 ,但是不成功的响应仍将立即生效。

从 我读到的 这个 ,我不应该混淆iptables来使这个工作,这是好的,因为我不是很了解networking。 不过,我认为有些事情是错误的,因为iptables -t nat -L | grep 8080 iptables -t nat -L | grep 8080不会返回任何东西,当我期望它有一条关于redirect或允许stream量到该端口的线。 我禁用了SELinux和firewalld,而是安装了iptables-services。

我可以使用其他命令在主机之间发送stream量,如:

 [root@host1 ~]# ncat -l 8001 [root@host2 ~]# echo "testing123" > /dev/tcp/<host1_ip_addr>/8001 

所以我觉得这不仅仅是一个错误configuration的networking。 FWIW,我也尝试了--network=host docker run ...命令--network=host ,这也没有帮助。 现在已经过了2天了。 如果有人有build议,我将不胜感激。

编辑:这绝对是,不知何故,一个错误configuration的networking。 我在家里重复了它,而且它每个人都说泊坞窗应该是这样的。 任何build议如何去搞清楚networking的东西阻塞docker的部分将不胜感激。

这是因为我设立的互联网代理。 取消所有的代理variables后,我可以从另一个系统curl到主机。 我被告知,我设置的no_proxyNO_PROXYvariables足以防止这种情况,但事实并非如此。

感谢所有看过这个的人。