不同容器的相同docker映像

时间:2018-08-28 11:53:16

标签: docker docker-compose docker-image

我有一个问题,也许对docker镜像有误解。

我需要为两个不同的项目运行两个单独的mongodb 3.6容器。但是似乎如果使用相同的映像(mongo:3.6),则容器将使用相同的数据,配置等...

我使用docker-compose运行和管理我的容器。我的docker-compose.yml看起来像这样:

services:
    first-mongo:
        image: mongo:3.6
        container_name: first-mongo
        mem_limit: 4g
        restart: always
        ports:
            - '27017:27017'
        volumes:
            - ${FIRST_MONGO_DB_LOCAL_PATH}:/data/db
            - ${FIRST_MONGO_DB_LOCAL_DUMP_PATH}:/data/dumps
            - ${FIRST_MONGO_DB_LOCAL_SCRIPTS_PATH}:/data/scripts

    second-mongo:
        image: mongo:3.6
        container_name: second-mongo
        mem_limit: 4g
        restart: always
        ports:
            - '27018:27018'
        volumes:
            - ${SECOND_MONGO_DB_LOCAL_PATH}:/data/db
            - ${SECOND_MONGO_DB_LOCAL_DUMP_PATH}:/data/dumps
            - ${SECOND_MONGO_DB_LOCAL_SCRIPTS_PATH}:/data/scripts

因此,使用此配置,我的两个容器可以正常运行。但是,当我使用第二个容器的IP地址并尝试连接到数据库时,我看到的数据与第一个容器中的相同。另外,当我更改某些内容时,更改会同时出现在两个容器/图像中。在本地,我在第一个和第二个容器中有不同的数据。

P.S当我将第二个容器的图像标签更改为mongo:3.5时,我可以随意查看数据库(分离数据等)。

非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决该问题的方法。我刚刚将第二个mongo容器的端口配置更改为:

ports:
    - '27018:27017'

在27018之前: 27018 。老实说,我不知道它是如何关联的,但是它现在对我有用。

谢谢那些试图帮助我的人!