使用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。或尝试解决它。 请帮助我,谢谢。
答案 0 :(得分:0)
根据documentation,加密仅在 MongoDB Enterprise 中可用。因此,您需要付费订阅才能使用它。
对于企业版的docker映像,它在here中表示您可以自己构建它:
为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}
构建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 .
测试图像。
以下命令在Docker容器中本地运行mongod并检查版本。
docker run --name mymongo -itd $DOCKER_USERNAME/mongo-enterprise:$MONGODB_VERSION
docker exec -it mymongo /usr/bin/mongo --eval "db.version()"