У меня есть настройка, в которой я запускаю все части своего веб-сайта в контейнерах docker. Мой nginx, который прослушивает порты 80 и 443, работает в контейнере.
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 на хосте docker выглядят следующим образом:
root@Ubuntu-1204-precise-64-minimal /var/run # iptables -LChain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHEDACCEPT tcp -- anywhere anywhere tcp dpt:sshACCEPT tcp -- anywhere anywhere tcp dpt:httpACCEPT tcp -- anywhere anywhere tcp dpt:httpsACCEPT tcp -- anywhere anywhere tcp dpt:8000DROP 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,ESTABLISHEDChain OUTPUT (policy ACCEPT)target prot opt source destination
Из контейнера я не могу подключиться к порту 3000 на хост-компьютере из-за конфигурации iptables.
Я не хочу открывать порт 3000 для общедоступного Интернета.
Есть ли способ открыть прямой мост между контейнером и хостом на порту 3000?
Или я должен изменить свои iptables, чтобы принимать из диапазона IP-адресов docker?