我是新來的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