我正在由docker-compose控制的大型服务器中运行MongoDB。
我想减少Mongo日志的冗长程度(可能最终也可以控制其他Mongo设置)。不知道在哪里适合我的最小配置;我目前只有:
mongo:
image: mongo:3.2
volumes:
- ${MONGO_DATA_DB}:/data/db
ports:
- ${EXPOSED_MONGO_PORT}:27017
答案 0 :(得分:2)
在DockerHub上阅读MongoDB的official image的描述(与您使用的图像相同),我推断可以使用 command 部分将命令传递给 mongod docker-compose的然后,您可以使用--quiet
选项限制输出量。
这样,您的docker-compose将如下所示:
mongo:
image: mongo:3.2
volumes:
- ${MONGO_DATA_DB}:/data/db
ports:
- ${EXPOSED_MONGO_PORT}:27017
command: --quiet
您可以找到 mongod 接受here的选项的完整列表,也可以在bash中查看--help
的{{1}}输出。
有时docker映像会将配置参数作为环境变量接受,因此您可以在运行时更改服务的配置。遗憾的是,我在此Docker映像中找不到有关可用环境变量的任何官方信息,但我鼓励您继续研究此替代路径。
希望对您有帮助!
编辑
图片文档中的另一种方法:
对于更复杂的配置设置,您仍然可以使用MongoDB配置文件。 mongod默认情况下不读取配置文件,因此需要指定--config选项以及配置文件的路径。通过从mongo创建自定义Dockerfile或将其从主机安装到容器,创建一个自定义配置文件并将其放入容器中。有关配置文件选项的完整列表,请参见MongoDB手册。
例如,/ my / custom / mongod.conf是自定义配置文件的路径。然后像下面那样启动MongoDB容器:
$ docker run --name some-mongo -v / my / custom:/ etc / mongo -d mongo --config /etc/mongo/mongod.conf
这样,您的docker-compose将如下所示:
mongod
答案 1 :(得分:1)
我已经尝试了接受的答案,但是mongo log仍然很冗长。然后,在this thread之后,我省略了整个日志,这对我来说是更好的选择:
mongo:
command: mongod --quiet --logpath /dev/null