MongoDB и нераспознанная опция ‘—enableEncryption’

#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 корпоративной версии здесь указано, что вы можете создать его самостоятельно:

  1. Загрузите файлы сборки 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}
      
  2. Создайте контейнер 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 .
      
  3. Протестируйте свой образ.

    Следующие команды запускают mongod локально в контейнере Docker и проверяют версию.

     docker run --name mymongo -itd $DOCKER_USERNAME/mongo-enterprise:$MONGODB_VERSION
    docker exec -it mymongo /usr/bin/mongo --eval "db.version()"