도커 컨테이너에서 웹 사이트의 모든 부분을 실행하는 설정이 있습니다. 포트 80 및 443에서 수신 대기하는 내 nginx는 컨테이너에서 실행됩니다.
363292a98545 scivm/nginx-django-scivmcom:latest /usr/bin/supervisord 12 days ago Ghost 0.0.0.0:40001->22/tcp, 88.198.57.112:443->443/tcp, 88.198.57.112:80->80/tcp lonely_feynmann
다른 컨테이너의 서비스에 프록시를 설정하고 싶습니다. 이 컨테이너는 호스트의 포트 3000에 바인딩됩니다.
b38c8ef72d0a mazzolino/strider-dind:latest wrapdocker /usr/bin/ 41 minutes ago Up 41 minutes 0.0.0.0:3000->3000/tcp, 22/tcp, 27017/tcp distracted_einstein
도커 호스트의 내 iptables는 다음과 같습니다.
root@Ubuntu-1204-precise-64-minimal /var/run # iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:8000
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
컨테이너 내에서 iptables 구성으로 인해 호스트 시스템의 포트 3000에 연결할 수 없습니다.
포트 3000을 공개 인터넷에 공개하고 싶지 않습니다.
포트 3000의 컨테이너와 호스트 사이에 직접 브리지를 여는 방법이 있습니까?
또는 docker ip 범위에서 수락하도록 iptables를 수정해야합니까?