如何在containerd或docker运行场景下启用并查看runc日志
containerd/docker场景下runc debug日志启用与查看方案
1. containerd内部配置runc --debug标志(永久全局生效)
是可以直接在containerd配置中默认给runc传递--debug标志的,操作步骤如下:
- 找到containerd默认配置文件
/etc/containerd/config.toml,若该文件不存在,先执行containerd config default > /etc/containerd/config.toml生成默认配置 - 定位到配置块
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options],新增或修改参数Debug = true - 配置修改完成后执行
systemctl restart containerd使配置生效
该配置对所有通过containerd调用runc的场景均生效,覆盖docker、ctr、Kubernetes等上层调用场景
2. 临时调试场景启用方案
如果仅需要临时抓取单次runc调用的日志,不需要修改全局配置,可以按场景选择对应方式:
- 使用ctr调用时直接加debug参数:
ctr --debug run docker.io/library/alpine:latest test-container sh - 仅docker场景临时开启:修改docker服务的启动参数,添加
--debug标志后重启docker服务,dockerd会输出包含runc调用的全链路debug日志
3. 日志查看方法
- 全局配置runc debug后,runc日志默认和containerd日志一起输出到journald,执行
journalctl -u containerd -f | grep "runc"即可过滤查看runc相关日志 - docker临时开启debug后,执行
journalctl -u docker -f | grep "runc"过滤runc日志 - 若需要单独存储runc日志,可以在containerd的runc.options配置块中新增
LogPath = "/var/log/runc/",配置后每个容器的runc日志会单独写入该路径下以容器ID命名的日志文件中
注意:runc debug模式会生成大量日志,生产环境开启时需要提前配置日志轮转规则,监控磁盘容量,调试结束后及时关闭debug配置。
内容的提问来源于stack exchange,提问作者systolicDrake
相关产品推荐
相关产品推荐

