#linux #mongodb #docker #docker-compose
#linux #mongodb #docker #docker-создать
Вопрос:
У меня проблема при запуске образа mongo с помощью docker-compose.yml. Мне нужно зашифровать мои данные, потому что они очень чувствительны. Мой docker-compose.yml является:
version: '3'
services:
mongo:
image: "mongo"
command: ["mongod","--enableEncryption","--encryptionKeyFile", "/data/db/mongodb-keyfile"]
ports:
- "27017:27017"
volumes:
- $PWD/data:/data/db
Я проверяю, что mongodb-keyfile завершает работу в data / db, ок, никаких проблем, но когда я создаю файл, создаю и дополняю изображение, и команда:
"docker-entrypoint.sh mongod --enableEncryption --encryptionKeyFile /data/db/mongodb-keyfile"
Состояние:
About a minute ago Exited (2) About a minute ago
Я показываю журналы и вижу:
Error parsing command line: unrecognised option '--enableEncryption'
Я понимаю ошибку, но я не знаю, как ее решить. Я думаю создать Dockerfile с изображением ubuntu (linux что угодно) и установить mongo со всеми необходимыми конфигурациями. Или попробуйте решить ее.
Пожалуйста, помогите мне, спасибо.
Комментарии:
1. В руководстве по MongoDB говорится
--enableEncryption
, что он доступен в версии 3.2, а не в версии 3. Вероятно, вам следует использовать более новую версию MogoDB, если вы хотите использовать службу шифрования.2. @jww Последним образом mongo является версия 4, yaml
version: '3'
предназначен для docker-compose, я думаю, проблема в том, чтоenableEncryption
это вариант только для предприятия.
Ответ №1:
Согласно документации, шифрование доступно только в MongoDB Enterprise. Поэтому для ее использования у вас должна быть платная подписка.
Для образа docker корпоративной версии здесь указано, что вы можете создать его самостоятельно:
-
Загрузите файлы сборки Docker для MongoDB Enterprise.
Установите
MONGODB_VERSION
на выбранную вами основную версию.export MONGODB_VERSION=4.0 curl -O --remote-name-all https://raw.githubusercontent.com/docker-library/mongo/master/$MONGODB_VERSION/{Dockerfile,docker-entrypoint.sh}
-
Создайте контейнер Docker.
Используйте загруженные файлы сборки для создания образа контейнера Docker, обернутого вокруг MongoDB Enterprise. Установите
DOCKER_USERNAME
в качестве имени пользователя вашего Docker Hub.export DOCKER_USERNAME=username chmod 755 ./docker-entrypoint.sh docker build --build-arg MONGO_PACKAGE=mongodb-enterprise --build-arg MONGO_REPO=repo.mongodb.com -t $DOCKER_USERNAME/mongo-enterprise:$MONGODB_VERSION .
-
Протестируйте свой образ.
Следующие команды запускают mongod локально в контейнере Docker и проверяют версию.
docker run --name mymongo -itd $DOCKER_USERNAME/mongo-enterprise:$MONGODB_VERSION docker exec -it mymongo /usr/bin/mongo --eval "db.version()"