2017-09-16 45 views
0

我有以下碼頭合成文件。我正嘗試從主機訪問在容器中運行的服務。碼頭合成網絡 - 主機名未解決

但是主機名永遠不會解決。

version: '2' 
networks: 
    mynet: 
    driver: bridge 
services: 


    grpcserver: 
    image: test/image 
    volumes: 
     - ./:/var/local/git 
    ports: 
     - 50051:50051 
    stdin_open: true 
    tty: true 
    hostname: grpcserver 
    networks: 
     - mynet 
    entrypoint: bash ../var/local/git/service/start.sh 

當我exec的容器,我可以向telnet grpcserver 50051正在運行的服務使用主機名成功。但是從主持人來說,我做不到。

版本

泊塢窗,撰寫版本1.16.1,構建6d1ac21

回答

2

Docker容器不使用主機上他們的名字解析。他們只能在其他容器內解決。該名稱取決於您是否嘗試從同一撰寫/網絡中的另一個服務或另一個服務進行連接。

如果你需要你的容器可以從主機發現,你需要使用像dnsmasq這樣的工具。請參閱下面的答案關於如何做這樣的設置的更多細節

Access to container by his hostname from host-mascine