Docker日志大小限制

本文介绍了如何通过修改Docker配置文件来实现对容器日志的管理,包括设置单个日志文件的最大尺寸以及日志文件的数量限制。同时,文中还提供了在docker-compose.yml文件和dockerrun命令中设置日志管理的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、修改docker配置文件,vi /etc/docker/daemon.json

{
“log-driver”:“json-file”,
“log-opts”: {“max-size”:“20m”, “max-file”:“100”}
}
max-size=500m,意味着一个容器日志大小上限是500M,
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

2、然后重启docker的守护线程

systemctl daemon-reload && systemctl restart docker

docker-compose.yml中也可以限制

nginx:
image: nginx:1.12.1
restart: always
logging:
driver: “json-file”
options:
max-size: “5g”

docker run中限制

$ docker run -d --log-driver json-file --log-opt max-size=1g nginx

### 如何查看或管理 Docker 容器的日志 #### 查看 Docker 日志的方法 可以通过 `docker logs` 命令来查看容器的标准输出和标准错误流日志。此命令适用于正在运行或已停止的容器[^1]。 ```bash docker logs <container_name_or_id> ``` 如果希望实时跟踪日志的变化,可以加上 `-f` 参数实现类似于 `tail -f` 的效果: ```bash docker logs -f <container_name_or_id> ``` 对于更复杂的场景,还可以指定时间戳显示 (`--timestamps`) 或者仅获取最近几条日志 (使用 `--since` 和 `--until`)[^1]。 #### 获取日志文件路径并直接操作 除了通过 `docker logs` 命令外,也可以定位到具体的日志文件位置进行分析。默认情况下,Docker日志保存在 `/var/lib/docker/containers/<container-id>/<container-id>-json.log` 中[^2]。要快速找到某个特定容器的日志文件地址,可执行如下指令: ```bash docker inspect --format='{{.LogPath}}' <container_name_or_id> ``` 得到的结果是一个绝对路径字符串指向该容器对应的 JSON 格式的日志文档。之后可以直接编辑或者复制这些原始数据用于进一步处理。 #### 复制日志至外部存储 当需要保留一份副本时,利用重定向功能把日志导出成独立文件不失为一种好办法。下面展示了一个例子说明怎样创建一个新的 `.log` 文件存放在用户家目录里[^4]: ```bash docker logs <container_name_or_id> > ~/exported-container-log.log ``` 另外还有一种方式就是借助 `docker cp` 把内部生成的内容搬移到宿主机上: ```bash docker cp <container_name_or_id>:<source_path_inside_container> <destination_on_host> ``` 不过这种方法的前提条件是你知道确切的目标源位于何处以及是否有权限访问它. #### 删除过期的大容量日志 长期积累下来可能会占用大量磁盘空间,因此定期清理不必要的历史记录很有必要.虽然不能直接删掉现有的 log file ,但是能够调整驱动参数限制其增长规模.比如修改 daemon.json 配置项加入 max-size/max-file 来控制单个文件大小上限及轮转次数 : ```json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } ``` 然后重启服务使更改生效即可. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

医者运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值