1. 程式人生 > 其它 >docker使用docker-compose構建容器時使用external_links失效

docker使用docker-compose構建容器時使用external_links失效

技術標籤:Docker容器化docker網路

例如:

monitor:
    image: monitor:1.0-SNAPSHOT
    container_name: monitor
    ports:
      - 8101:8101
    volumes:
      - /mydata/app/monitor/logs:/var/logs
      - /etc/localtime:/etc/localtime
    environment:
      - 'TZ="Asia/Shanghai"'
    external_links:
      - nacos-registry:nacos-registry #可以用nacos-registry這個域名訪問nacos服務

當docker-compose.yml檔案中使用了external_links和其他容器進行連線時

http://nacos-registry:8848

比如上面的例子,提示無法連線,這是因為兩個docker容器不在同一個網路內。
這時可以先檢視現在的所有網路

docker network ls #列出當前的所有網路

在這裡插入圖片描述

  1. 建立一個新的docker網路
docker network create -d bridge custom

這時就建立了一個名為custom的網路
然後在構建兩個容器的docker-compose.yml檔案的最後面都新增以下配置

networks:
  default:
    external:
      name: custom

儲存然後重新構建容器,這時兩個容器直接的網路就可以互通了。
PS:當然也可以使用–link elasticsearch:es
external_links和links的區別

  • links代表的是在本檔案下互通:意思就是在這個yml檔案一塊啟動的容器下互通
  • external_links是隻要是同一個docker啟動的都可以互通(可能需要配置網路)