iT邦幫忙

0

限制docker容器的log大小的各式情境與方法

  • 分享至 

  • xImage
  •  

以下都是在說linux主機的狀況:

  1. 如果是還沒有創建容器的狀況下使用的方法
  2. 已經有容器並且使用docker compose並且有volume mount在外部主機的狀況

首先第一種就很單純

  1. 先去/etc/docker底下,創建deamon.json
{
    "log-driver": "json-file", # docker預設都是json格式
    "log-opts": {
        "max-size": "1m", # 你想要一個log file有多大?
        "max-file": "3"   # 最多幾個log file存在
    }
}
  1. 接著輸入命令去重啟docker service
systemctl daemon-reload # 通常docker的配置沒有在 /etc/systemd 下所以可以不用輸入這句
systemctl restart docker # 重啟docker服務
  1. 創建容器後,可以去/var/lib/docker/containers下 容器的id名稱,去看裡面的hostconfig.json
"LogConfig": {
    "Type": "json-file",
    "Config": {
        # 這裡應該要有配置好的部分
    }
}

有出現的話就成功了~


那第二種情境,剛剛提到這個配置要新創的容器才能應用,那可能會想到說我在docker compose down以及docker compose up的過程就會重新創建容器了啊~

但是如果有做持久化的話會有相關的volume,除非都一起刪掉不然無法
但是很多狀況下不可能去刪除

所以可以更改docker_compose.yml

logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

重新compose就可以應用了~


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言