[英]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.