天天看点

docker使用docker-compose构建容器时使用external_links失效

例如:

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 #列出当前的所有网络
           
docker使用docker-compose构建容器时使用external_links失效
  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启动的都可以互通(可能需要配置网络)

继续阅读