You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Runner部署后Docker容器日志丢失,需保留至少3个月日志

解决GitLab Runner流水线Docker容器日志丢失问题

1. 全局配置Docker日志持久化

修改Docker守护进程配置文件(默认路径/etc/docker/daemon.json),使用local日志驱动并设置3个月的保留规则:

{
  "log-driver": "local",
  "log-opts": {
    "max-size": "10m",
    "max-file": "30",
    "retention": "90d"
  }
}

保存后重启Docker服务使配置生效:

systemctl restart docker

该配置会让所有Docker容器的日志持久化到本地文件系统,自动保留90天,超出大小或时间限制的日志会自动轮转清理。

2. 针对GitLab Runner单独配置日志规则

编辑GitLab Runner的配置文件(默认路径/etc/gitlab-runner/config.toml),在对应Runner的配置段中指定日志驱动及参数:

[[runners]]
  name = "your-docker-runner"
  executor = "docker"
  [runners.docker]
    # 其他已有配置...
    log_driver = "local"
    log_opt = ["max-size=10m", "max-file=30", "retention=90d"]
    # 挂载容器日志目录到Runner主机,确保日志不会随容器销毁丢失
    volumes = ["/cache", "/var/lib/docker/containers:/var/lib/docker/containers"]

重启GitLab Runner服务生效:

gitlab-runner restart

这种方式可以单独为GitLab流水线的容器配置日志策略,不影响主机上其他Docker容器。

3. 集中式日志留存(可选)

如果需要更稳定的日志存储,可以将Docker日志转发到本地日志服务(如rsyslog),再配置日志保留:

  1. 修改Docker daemon配置使用syslog驱动:
{
  "log-driver": "syslog",
  "log-opts": {
    "syslog-address": "unix:///dev/log"
  }
}
  1. 编辑rsyslog配置文件(/etc/rsyslog.conf),添加Docker日志的存储规则和90天保留策略:
$template DockerLogPath, "/var/log/docker/%HOSTNAME%/%PROGRAMNAME%.log"
:programname, startswith, "docker-" ?DockerLogPath
$DailyFileRetention 90
  1. 重启rsyslog和Docker服务:
systemctl restart rsyslog docker

内容的提问来源于stack exchange,提问作者Shadi Akil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 09:35:38