Docker-compose external_links无法连接
我有几个应用程序容器,我想连接到MongoDB容器。 我尝试external_links,但我无法连接到MongoDB。
我明白了
MongoError:第一次连接时无法连接到服务器[mongodb:27017]
是否必须将容器添加到同一个networking才能使external_links工作?
MongoDB的:
version: '2' services: mongodb: image: mongo:3.4 restart: always ports: - "27017:27017" volumes: - data:/data/db volumes: data:
应用程序:
version: '2' services: app-dev: restart: Always build: repository/ ports: - "3000:80" env_file: - ./environment.env external_links: - mongodb_mongodb_1:mongodb
networking:
# sudo docker network ls NETWORK ID NAME DRIVER SCOPE 29f8bae3e136 bridge bridge local 67d5519cb2e6 dev_default bridge local 9e7097c844cf host host local 481ee4301f7c mongodb_default bridge local 4275508449f6 none null local 873a46298cd9 prod_default bridge local
文档在https://docs.docker.com/compose/compose-file/#/externallinks说
If you're using the version 2 file format, the externally-created containers must be connected to at least one of the same networks as the service which is linking to them.
例如:
创build一个新的dockernetworking
docker network create -d bridge custom
搬运工-撰写-1.yml
version: '2' services: postgres: image: postgres:latest ports: - 5432:5432 networks: - custom networks: custom: external: true
搬运工-撰写-2.yml
version: '2' services: app: image: training/webapp networks: - custom external_links: - postgres:postgres networks: custom: external: true
Yuva的第二版以上的答案也适用于第三版。
external_links的文档不够清晰。
为了更加清晰,我粘贴了版本3的变体和注解
version: '3' services: app: image: training/webapp networks: - <<network created by other compose file>> external_links: - postgres:postgres networks: <<network created by other compose file>>: external: true