2017-09-27 14 views
0

ドッキング用のコンテナ内からホストマシン上で実行されているサービス(たとえばPostfix)にアクセスする方法はありますか?ここでドッカーコンテナからホスト上のdocker0に接続

は、テストのためにホストシステム

> ip route show 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
172.18.0.0/16 dev br-48c656087ada proto kernel scope link src 172.18.0.1 

> docker network ls 
86ec0ba25160  bridge       bridge    local  
48c656087ada  customer_customer   bridge    local 

に私のドッキングウィンドウのコンファイル

version: '2' 

networks: 
    customer: 

backend: 
    image: backend:2.0 
    mem_limit: 5g 
    restart: always 
    networks: 
     - customer 
    ... 

である私は、0.0.0.0ポート25にPythonのソケットスクリプトを結合したが、コンテナ内部からのtelnet「を受賞しました仕事。また、ソケットをドッカーブリッジ(172.17.0.1)とネットワークブリッジ(172.18.0.1)にバインドしようとしました。同じ結果。コンテナ

> ip route show | awk '/default/ {print $3}' 
172.18.0.1 

> telnet 172.18.0.1 25 
telnet: Unable to connect to remote host: Connection refused 

答えて

0

コンテナ内からホストマシンに接続できるように、Linux上でドッキングウィンドウを実行している場合、あなたはネットワークモードのホストでコンテナを起動する必要があります。

... 
backend: 
    image: backend:2.0 
    mem_limit: 5g 
    restart: always 
    networks: 
     - customer 
    network_mode: "host" 

または、ifconfigを使用して、docker0インターフェイスでホストIPを見つけることができます。あなたの場合は172.17.0.1であり、それを使用してコンテナから接続する必要があります。

関連する問題