簡體   English   中英

如何減少 docker-compose 圖像中的 mongo 日志冗長?

[英]How to reduce mongo log verbosity in a docker-compose image?

我在一個更大的服務器中運行 MongoDB,由 docker-compose 控制。

我想減少 Mongo 日志的冗長(並且可能最終也控制其他 Mongo 設置)。 不確定將其放入我的最小配置中的位置; 我目前只有:

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

我已經嘗試了接受的答案,但 mongo log 仍然很冗長。 然后,在此線程之后,我省略了整個日志,在我的情況下要好得多:

mongo:
    command: mongod --quiet --logpath /dev/null 

在 DockerHub 上閱讀 MongoDB官方鏡像的描述(與您使用的鏡像相同)我推斷您可以使用 docker-compose 的命令部分將命令傳遞給mongod 然后您可以使用--quiet選項來限制輸出量。

通過這種方式,您 docker-compose 將如下所示:

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

您可以在此處找到mongod接受的整個選項列表,也可以在 bash 中檢查mongod--help輸出。

有時 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 將如下所示:

mongo:
    image: mongo:3.2
    volumes:
      - ${MONGO_DATA_DB}:/data/db
      - ${MONGO_DATA_CONFIG}:/etc/mongo/
    ports:
      - ${EXPOSED_MONGO_PORT}:27017
    command: --config /etc/mongo/mongod.conf

設置日志路徑對我有用。 它沒有顯示日志 output 而是保存到文件中。

    mongo:
        container_name: mongo
        image: mongo
        restart: unless-stopped
        command: 
            - '--logpath'
            - '/var/log/mongodb/mongod.log'
        ports:
            - '27017:27017'

Bitnami 的另一個 MongoDB 映像通過撰寫文件中的環境變量提供此功能。

https://hub.docker.com/r/bitnami/mongodb 配置系統日志詳細級別部分解釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM