Link 在两个不同的 docker-compose 文件中配置的容器

Link containers that are configured in two different docker-compose files

假设我有两种不同的 docker-compose 配置:

db.yml:

version: '3'
networks:
    default:
        external:
            name: backend

volumes:
    mongo_data:

services:
    mongodb:
        image: mongodb
        container_name: mongodb
        restart: always
        ports:
            - 27017:27017
        networks:
            - backend
        volumes:
            - mongo_data:/data/db

admin.yml:

version: '3'
networks:
    default:
        external:
            name: backend

volumes:
    mongo_data:

services:
    mongoclient:
        image: mongoclient/mongoclient
        restart: always
        ports:
            - 3000:3000
        networks:
            - backend
        depends_on:
            - mongodb
        links:
            - mongodb

这行不通,因为链接的容器没有配置在同一个文件中。但是有没有办法实现类似的东西?

我想要一个更简洁的设置来设置我的生产环境,这样我就可以只重新启动更改的相关位,而不是一次重新启动所有内容。

要link到mongodb你需要link"external":

...
external_links:
        - project_mongodb_1:mongodb
...

请注意,您需要将 project_mongodb_1 替换为 docker-compose ps 给您的正确名称。您需要删除 depends_on 部分。这行不通。看这里:https://github.com/docker/compose/issues/3951

但是您根本不应该使用 link,因为它们已被弃用。有关详细信息,请参阅此处:https://docs.docker.com/compose/compose-file/#external_links

查看此操作方法: