我是新来的docker,我有问题让nginx运行。这一切似乎都是正确的。使用“curl”可以从主机访问nginx。 iptables为docker虚拟接口设置了一个新的规则。nginx docker-image无法访问
但是,互联网上无法访问nginx。
我使用的是Debian(杰西)
Linux h2127057 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
泊坞窗是版本
Docker version 17.03.1-ce, build c6d412e
netstat的是给
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
tcp 0 216 X.X.X.X:22 X.X.X.X:64103 VERBUNDEN
tcp6 0 0 :::443 :::* LISTEN
tcp6 0 0 :::514 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
iptables规则的遵循
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION
-N fail2ban-pam-generic
-N fail2ban-ssh
-N fail2ban-ssh-ddos
-A FORWARD -d 172.24.18.12/32 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -d 172.24.18.12/32 -p tcp -m tcp --dport 465 -j ACCEPT
-A FORWARD -d 172.24.18.12/32 -p tcp -m tcp --dport 587 -j ACCEPT
-A FORWARD -d 172.24.18.12/32 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -d 172.24.18.12/32 -p tcp -m tcp --dport 995 -j ACCEPT
-A FORWARD -d 172.24.18.12/32 -p tcp -m tcp --dport 143 -j ACCEPT
-A FORWARD -d 172.24.18.12/32 -p tcp -m tcp --dport 993 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 443 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT
正如你所看到的,在另一个子网上已经有规则。这是我使用普通LXC的旧虚拟基础架构。
这可以让我得到问题吗?
谢谢大家帮助 大卫
但是,如果您的应用程序在主机上,特定端口上可见,那么您只需将此端口(在主机上)打开到全世界,并最终将域添加到etc/hosts也是如此。国际海事组织没有什么更多与码头本身。 – barat
这里是我如何暴露端口到机器 '码头运行-d -p 80:80 -p 443:443 nginx' – David
所以现在看来你有某种路由器/防火墙/无论什么阻塞传入端口80/443从互联网到您的主机的交通。 您需要搜索指南如何打开OS /路由器上的端口。如果在主机上看到nginx服务页面,则转到localhost:80,然后在打开端口之后,它将从YOUREXTERNALIP:80(或somedomain.tld,如果将其添加到您的etc/hosts(如127.0.0)中)访问。1 somedomain.tld) – barat