Mongodb docker mongo在添加身份验证后丢失数据
我想为mongo容器启用Mongodb docker mongo在添加身份验证后丢失数据,mongodb,docker,docker-compose,Mongodb,Docker,Docker Compose,我想为mongo容器启用auth docker compose.yml是: docker compose.yml mongo: image: mongo volumes: - ./data:/data/db ports: - "27017:27017" 数据库中有一些数据。 我更新了docker compose.yml mongo: image: mongo volumes: - ./data:/data/db p
auth
docker compose.yml
是:
docker compose.yml
mongo:
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
数据库中有一些数据。
我更新了docker compose.yml
mongo:
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password
尽管我启用了身份验证,但无法将管理员用户添加到现有用户
然后我更新了docker compose.yml:
mongo:
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password
volumes:
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
mongo init.js
use admin
db.createUser(
{
user: "admin",
pwd: "passwr0d",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
这次我可以看到日志用户被成功添加
但是我丢失了现有的数据:(
警告是:
WARNING: Service "mongo" is using volume "/data/db" from the previous container. Host mapping "/home/xxx/deploy/data" has no Recreating deploy_mongo_1 ...
能帮我找回数据吗?谢谢
PS:在mongo init.js
中,我使用了passwr0d
和docker compose.yml
密码是password
。我可以通过password
登录mongo,不确定是否是这样
编辑
mongo卷是否有可能被覆盖?路径是docker compose.yml
中设置的~/deploy/data
,我从未更改过