在Ubuntu中,Docker容器的日志輪轉可以通過配置Docker的日志驅動和日志選項來實現。以下是一些常見的方法:
Docker默認使用json-file
日志驅動,可以通過配置/etc/docker/daemon.json
文件來設置日志輪轉選項。
編輯Docker守護進程配置文件:
打開或創建/etc/docker/daemon.json
文件,并添加以下內容:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
這里的max-size
設置每個日志文件的最大大小,max-file
設置保留的日志文件數量。
重啟Docker服務: 保存文件后,重啟Docker服務以應用更改:
sudo systemctl restart docker
如果你希望將Docker容器的日志發送到系統的syslog,可以使用syslog
日志驅動,并配置syslog服務器進行日志輪轉。
編輯Docker守護進程配置文件:
打開或創建/etc/docker/daemon.json
文件,并添加以下內容:
{
"log-driver": "syslog",
"log-opts": {
"syslog-address": "unix:///var/run/syslog",
"tag": "{{.Name}}"
}
}
這里的syslog-address
設置syslog服務器的地址,tag
設置日志標簽。
配置syslog服務器:
根據你使用的syslog服務器(如rsyslog或syslog-ng),配置相應的日志輪轉規則。例如,對于rsyslog,可以在/etc/rsyslog.conf
或/etc/rsyslog.d/50-default.conf
中添加以下內容:
if $programname == 'docker' then /var/log/docker.log
& stop
然后配置日志輪轉:
/var/log/docker.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
重啟rsyslog服務: 保存文件后,重啟rsyslog服務以應用更改:
sudo systemctl restart rsyslog
你還可以使用第三方日志驅動,如fluentd
或logstash
,這些工具通常內置了日志輪轉功能。
安裝并配置第三方日志驅動: 根據你選擇的第三方日志驅動的文檔進行安裝和配置。
配置日志輪轉: 第三方日志驅動通常會提供自己的日志輪轉配置選項,按照其文檔進行設置即可。
通過以上方法,你可以在Ubuntu Docker容器中實現日志輪轉,確保日志文件不會無限增長,并且可以方便地進行管理和分析。