MongoDB和无法识别的选项'--enableEncryption'

时间:2019-03-14 02:37:03

标签: linux mongodb docker docker-compose

使用docker-compose.yml运行映像mongo时出现问题。我需要加密我的数据,因为它非常敏感。我的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

我检查了data / db中的mongodb-keyfile出口,好的,没问题,但是当我构建文件,制作并创建映像时,te命令是:

"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 个答案:

答案 0 :(得分:0)

根据documentation,加密仅在 MongoDB Enterprise 中可用。因此,您需要付费订阅才能使用它。

对于企业版的docker映像,它在here中表示您可以自己构建它:

  1. 为MongoDB Enterprise下载Docker构建文件。

    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容器。

    使用下载的构建文件来创建围绕MongoDB Enterprise包装的Docker容器映像。将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. 测试图像。

    以下命令在Docker容器中本地运行mongod并检查版本。

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