2017-09-27 170 views
0

有沒有辦法從碼頭集裝箱內部訪問在主機上運行的服務(例如Postfix)?從碼頭集裝箱連接到主機上的碼頭0

這裏是我的主撰寫搬運工文件

version: '2' 

networks: 
    customer: 

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

系統

> 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 

爲了測試我勢必一個python腳本插座爲0.0.0.0端口25,但是從內部容器贏得一個telnet」工作。我還嘗試將套接字綁定到docker橋(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,你應該使用它來從容器連接。