采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我遇到了一个现场的问题。我在一个服务器上部署了一个docker 监听了一个端口,通过桥接的方式,把端口映射到宿主机的80端口。然后在我办公室的机器去telnet这个端口,不通。但是如果docker以host的模式启动,就能访问通,请问什么原因会导致这个问题呢?
这种是很常见的网络问题。
先确保你的80在服务器本地是可以访问的,也就是127.0.0.1:80
检查服务器防火墙
检查你办公室机器到服务器之间的网络,一般是ping和trace route,看看中间是否有其他的防火墙设备等
老师本地(127.0.0.1:80)是可以访问的,而且如果以host模式启动,其他电脑也是可以访问的,防火墙是有开通的。 用映射的方式本地也能访问,但是其他电脑就访问不通了
感觉和iptables有关,但是不知道怎么弄
那就查下iptables 吧,网上资料还是很多的 ,比如可以先强制把iptables关了,如果问题解决,那就定位到iptables,可以再研究下iptable的规则,开开iptables,并且允许80端口 https://www.jianshu.com/p/f7954a1f7bc9
关于docker bridge DNAT的解释,比如我把nginx的80映射到本地的8888
本地访问127.0.0.1的8888端口之所以能访问到nginx的80,是因为下面的这条DNAT转发,其中172.17.0.2就是nginx这个container的地址
iptables --list -t nat 回头试试,谢谢老师~~~
登录后可查看更多问答,登录/注册
无论你是开发、测试还是运维,Docker都是你的必备技能。
1.7k 26
1.6k 18
1.5k 17
1.3k 16
1.5k 16