【发布时间】:2015-10-28 01:21:42
【问题描述】:
我在虚拟机上运行一个容器。我的容器默认将日志写入 /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log 文件,直到磁盘已满。
目前,我必须手动删除此文件以避免磁盘已满。我读到在 Docker 1.8 中会有一个rotate the logs 的参数。 您会推荐什么作为当前的解决方法?
【问题讨论】:
-
作为当前的解决方法,如果日志对您不重要,您可以完全关闭它。这可以通过使用
--log-driver=none启动 docker 守护进程来完成。如果您只想禁用特定容器的日志,您可以在docker run命令中使用--log-driver=none启动它们。另一种选择可能是将外部存储安装到/var/lib/docker。例如 NFS 共享或存储容量比相关主机更大的东西。 -
或使用
journald日志驱动程序,并记录日志轮换问题。 -
@Dharmit 它在 CoreOs 上的什么位置?
-
@larsks 如何在 CoreOS 上做到这一点?似乎已安装 journald 并在 /var/log/journal 中生成日志,但我也登录 /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log
-
@poiuytrez 什么在哪里?如果您愿意使用建议的选项启动 Docker 守护程序,
/usr/lib/systemd/system/docker.service可能是该文件。我不确定CoreOS。在 CentOS 上,这就是位置。至于其他问题,您需要更改 Docker 守护程序的选项以使用journald作为日志记录驱动程序。然后它将使用 journald 记录容器,而不是记录到/var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log。如果我遗漏了什么,@larsks 纠正我。
标签: logging docker coreos diskspace