나는 도커에 익숙하지 않으며 nginx를 실행하는 데 문제가 있습니다. 모두 옳은 것처럼 보입니다. nginx는 "컬 (curl)"을 사용하여 호스트에서 연결할 수 있습니다. iptables는 도커 가상 인터페이스에 대한 새로운 규칙을 설정합니다.nginx 도커 이미지에 연결할 수 없습니다.
하지만 인터넷에서 nginx에 연결할 수 없습니다. 다음으로 내가 데비안을 사용하고
(제시)은
Linux h2127057 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
고정 표시기
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 규칙을주고있다 버전
Docker version 17.03.1-ce, build c6d412e
에서 netstat입니다
-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에 도메인을 추가하십시오. IMO 도커와 함께 할 것은 없습니다. – barat
여기에 기계에 포트를 노출하는 방법이 나와 있습니다. 'docker run -d -p 80:80 -p 443 : 443 nginx' – David
이제 라우터/방화벽/어떤 종류의 포트가 들어오는 포트 80이있는 것처럼 보입니다./443 인터넷에서 귀하의 호스트로. OS/라우터에서 포트를 여는 방법을 찾아야합니다. 호스트에서 nginx가 localhost : 80으로 이동하여 페이지를 볼 수 있다면 포트를 연 후 YOURXTERNALIP : 80 (또는 127.0.0과 같은 호스트/호스트에 추가하는 경우 somedomain.tld)에서 연결할 수 있습니다.1 somedomain.tld) – barat