vi /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opt": {
"max-size": "10m",
"max-file": "3"
}
docker 文档
https://docs.docker.com/v17.09/engine/admin/logging/log_tags/
log-server
https://docs.docker.com/v17.09/engine/admin/logging/log_tags/
容器运行时 每个日志文件最大为10M ,每个容器 最多可以保存3份日志文件
#######################################
docker日志驱动
自docker1.6开始,可以控制docker守护进程和容器的日志驱动了。通过–log-driver选项来实现,可以在启动守护进程或者执行docker run时使用
- json-file 默认选项
- syslog 将禁用docker logs命令;将对应容器的日志重定向到syslog中,在启动守护进程时指定该选项,会将所有容器的日志重定向到syslog中
- none 禁用所有容器中的日志
#######################################
Docker日志太多导致磁盘占满
我有一台服务器上面部署了多个docker容器, 并且每个docker容器都往stderr中源源不断的输出日志,导致今天磁盘被占满了。搜索了一下,docker官方网站上提供了一篇解决方案的文章。
Docker容器在启动/重启的时候会往/var/lib/docker中写东西,如果你在启动docker容器遇到No space left on device的问题,可以按照下面的步骤进行清理相关的日志操作。
-
对 /var/lib/docker/containers 下的文件夹进行排序,看看哪个容器占用了太多的磁盘空间
-
选择你要清理的容器进行清理
$ cat /dev/null > /var/lib/docker/containers/container_id/container_log_name
上述命令会清空对应的日志,如:
cat /dev/null > /var/lib/docker/containers/374aa0ba92b37d829012282ff15c1bb838d95dedb54589874c4285991be2d4aa/374aa0ba92b37d829012282ff15c1bb838d95dedb54589874c4285991be2d4aa-json.log
- 限制日志文件的大小
启动容器时,可以通过参数设置日志文件的大小、日志文件的格式。
docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash