谁能告诉我哪里出错了。我要做的就是使用 docker compose 命名一个 Mongo 数据库。
我有一个 docker 撰写文件,如下所示:
version: "3"
services:
mongo-db:
image: mongo
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password
- MONGO_INITDB_DATABASE=mydbname
ports:
- 27017:27017
volumes:
- mongo-db:/data/db
volumes:
mongo-db:
我运行 docker docker-compose -f docker-compose.yml up -d --build
并且它运行。然后我打开 Robo 3T 并连接到我的容器,但每次我这样做时,数据库都称为 test 而不是 mydbname。有任何想法吗? TIA
回答1
如果没有数据库已经存在,环境变量仅用于创建新数据库。您将一个卷映射到 /data/db
并且该卷可能包含一个名为“test”的现有数据库。
使用 docker volume ls
查找卷。它被称为 <directory name>_mongo-db
之类的东西。然后使用 docker volume rm <volume name>
将其删除。
现在 Docker 将创建一个新的空卷,Mongo 将在您启动容器时创建一个新数据库。它将使用环境变量中的 values 。