簡體   English   中英

無法為 docker 容器中的 mongodb 日志設置音量

[英]Unable to set volume for mongodb logs in docker container

我的 docker mongo 圖像

REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
mongo        latest    f03be0dc25f8   2 days ago   448MB

我的容器命令

docker run -it --name c1_mongo -p 37017:27017 -v /var/mongo/data/c1_mongo:/data/db -v /var/mongo/config/c1_mongo/mongod.conf.orig:/etc/mongod.conf.orig -v /var/mongo/logs/c1_mongo:/var/log/mongodb mongo -f /etc/mongod.conf.orig

我得到的錯誤

{"t":{"$date":"2021-03-29T11:00:02.967Z"},"s":"F",  "c":"CONTROL",  "id":20574,   "ctx":"main","msg":"Error during global initialization","attr":{"error":{"code":38,"codeName":"FileNotOpen","errmsg":"Failed to open /var/log/mongodb/mongod.log"}}}
  1. 我已成功將容器內數據目錄的卷設置為我的主機
  2. 我已成功將容器內的配置文件的音量設置為我的主機
  3. 設置日志卷失敗。

當我更改主機中的配置文件並運行容器時,我的所有更改都會反映在容器中的配置文件中。 我容器的 /data/db 目錄中的數據正在同步到主機中我各自的文件夾。

就像我的數據存儲在我的主機中一樣。 我希望我的日志也存儲在我的主機上。

注意:卷映射顯示主機和容器的目錄。

請幫忙!

可以使用以下步驟解決此問題。

  1. 在不安裝導致問題的卷的情況下運行容器。
  2. Go 進入容器 bash 並檢查在我的情況下您遇到問題的文件夾權限是 /var/log/mongodb
  3. 現在檢查文件夾的所有者。
  4. 在容器 shell 中運行“cat passwd”並找到您在上一步中找到的所有者並注意它的 id 可能是(999 或 1000 等)。
  5. 現在退出容器,停止它,移除它。
  6. 現在在您的主機日志路徑上,在我的情況下是 /var/mongo/data/c1_mongo
  7. 將 c1_mongo 文件夾的所有者更改為“chown -R 999:999 c1_mongo”(999 是您在步驟 4 中找到的 id)
  8. 現在再次運行您的容器。

暫無
暫無

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

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