Я хочу включить 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
, не уверен, что так.
РЕДАКТИРОВАТЬ Любой возможный объем монго был перезаписан? Путь ~/deploy/data
установлен в docker-compose.yml
, который я никогда не менял.