Пользователь root в Docker
Пользователь root создаётся
только при первом запуске
пустого тома,
а не на уже заполненном.
Скрипт старта читает
имя и пароль из окружения
и заводит учётку
в базе admin.
На том же томе запрос
без пароля уже не пройдёт.
Сервис db на mongo:8.3
монтирует том authdata
в /data/db
и получает логин root
с паролем demo:
services:
db:
image: mongo:8.3
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: demo
volumes:
- authdata:/data/db
volumes:
authdata:
Фоновый подъём проекта выполняют так:
docker compose up -d
Проверка идёт с логином
root, паролем demo
и базой проверки
admin.
Тот же запрос без пароля
на этом томе уже не проходит:
сервер требует учётные данные.
Новые значения в окружении
не перепишут старый том:
docker compose exec db mongosh --quiet -u root -p demo --authenticationDatabase admin --eval "db.runCommand({ ping: 1 })"
Опишите сервис db с томом secure, логином root и учебным паролем при первом старте пустого хранилища.
Отметьте, что проверка живости с паролем проходит, а без пароля на том же томе отказывает.