背景
- 线上容器dockerd的后台程序打印了超过几十G的日志
Docker daemon日志的位置:
- Docker daemon日志的位置,根据系统不同各不相同。
- Ubuntu - /var/log/upstart/docker.log
- Boot2Docker - /var/log/docker.log
- Debian GNU/Linux - /var/log/daemon.log
- CentOS - /var/log/daemon.log | grep docker
- Fedora - journalctl -u docker.service
- Red Hat Enterprise Linux Server - /var/log/messages | grep docker
- 参考:http://stackoverflow.com/questions/30969435/where-is-the-docker-daemon-log
解决
- 参考文章:Docker守护进程的配置及日志
- 参考文章:docker深入2-linux下的配置文件daemon.json使用示例 讲配置文件daemon.json的完整示例
- 参考官网日志设置:Enable debugging
- 修改/etc/docker/daemon.json,添加log-level为debug, info, warn, error, fatal.默认是info。
- Send a HUP signal to the daemon to cause it to reload its configuration. On Linux hosts, use the following command.
$ sudo kill -SIGHUP $(pidof dockerd)
- 或者在启动docker daemon的时候设置日志看级别:
dockerd --log-level debug
dockerd -l debug
- 正确启动dockerd的姿势:
- 其中nohup用于使命令忽略挂起的信号
- ignoring hangup signals.
- 重定向日志是如果手动启动dockerd程序会在控制台打印日志,不会到规定的日志目录
sudo nohup docker -d --log-level warn > docker.log &