我有一个问题,也许是对码头图像的误解。
我需要为两个不同的项目运行两个单独的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时,我会看到数据库(单独的数据等)。
我非常感谢任何帮助。谢谢!
我找到了解决这个问题的方法。我刚刚将second-mongo容器的端口配置更改为:
ports:
- '27018:27017'
之前是27018:27018。说实话,我不知道它是如何相关的,但现在它对我有用。
感谢那些试图帮助我的人!