如何减少docker-compose映像中的mongo日志详细程度?

时间:2019-02-14 17:01:44

标签: mongodb logging docker-compose

我正在由docker-compose控制的大型服务器中运行MongoDB。

我想减少Mongo日志的冗长程度(可能最终也可以控制其他Mongo设置)。不知道在哪里适合我的最小配置;我目前只有:

  mongo:
    image: mongo:3.2
    volumes:
      - ${MONGO_DATA_DB}:/data/db
    ports:
      - ${EXPOSED_MONGO_PORT}:27017

2 个答案:

答案 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