从docker容器连接到docker主机

Modified on: Thu, 22 Aug 2019 08:00:02 +0800

我有一个设置,我在Docker容器中运行我网站的所有部分。我在端口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      

docker主机上的我的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上打开容器和主机之间的直接桥接?

或者我应该修改我的iptables以接受docker ip range?

最佳答案

您只需要Docker的链接功能

只需摆脱您尝试过的所有复杂内容,然后开始使用命名容器,然后将它们相互链接。

作者:,Elias Probst

相关问答

添加新评论