Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb docker mongo在添加身份验证后丢失数据_Mongodb_Docker_Docker Compose - Fatal编程技术网

Mongodb docker 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

我想为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
    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
,我从未更改过