Docker log driver
今天在公司看服务器上的容器时,发现存储空间不够了。看了一下,原来是某一个容器的日志就占了 100 多个 G。
# du -h "$(docker inspect --format='{{.LogPath}}' c558bcde8e07)"
162G /var/lib/docker/containers/c558bcde8e078bee2684f6652aa67dabb76d8cd0ebafb030a23555f2b70f1b31/c558bcde8e078bee2684f6652aa67dabb76d8cd0ebafb030a23555f2b70f1b31-json.log
我去查了一下为什么日志会占这么大:原来 Docker 默认的 log-driver 是 json-file,它不会删除日志,会一直保留所有日志。
现在 Docker 其实推荐 log-driver 用 local。这种情况下默认是 5 个文件,每个文件 20 MB,加起来一个容器的最大日志也就 100 MB。
所以后面的项目尽量都需要改一下 Docker 的这个配置才行
修改 /etc/docker/daemon.json
{
"log-driver": "local"
}
注意,修改之后只对新创建的容器才会生效,老的容器还是沿用之前的 driver