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

时间:2017-11-02 20:11:41

标签: docker

我正在使用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:8080curl 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}}命令,这也没有帮助。这已经是我生命中的两天了。如果有人有建议我会非常感激。

编辑:这绝对是一个错误配置的网络。我在家里重做它,它“按照每个人都说码头工的方式”工作。任何有关如何确定网络内容阻塞码头的建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是因为我设立的代理人才能上网。在取消设置所有代理变量之后,我能够从其他系统卷曲到主机。有人告诉我,我设置的no_proxyNO_PROXY变量足以阻止这种情况,但事实并非如此。

感谢所有看过这个的人。