更改 Docker 默认日志驱动
内容提要
Docker 默认使用的 json-file 日志驱动不支持日志轮换,可能导致磁盘耗尽。可以通过在 /etc/docker/daemon.json 中启用日志轮换,或切换到支持日志轮换的 local 驱动来解决。配置后需重启 Docker 服务,并重建现有容器以应用新配置。
关键要点
-
Docker 默认使用 json-file 日志驱动,该驱动不支持日志轮换,可能导致磁盘耗尽。
-
可以通过在 /etc/docker/daemon.json 中启用日志轮换来解决此问题。
-
启用日志轮换的配置示例:{"log-driver": "json-file", "log-opts": {"max-size": "10m", "max-file": "5"}}。
-
可以选择切换到支持日志轮换的 local 驱动,该驱动默认启用日志轮换。
-
local 驱动的配置示例:{"log-driver": "local"}。
-
更改日志驱动后,需要重启 Docker 服务以应用新配置,使用命令:systemctl restart docker。
-
现有容器在重启后不会自动应用新日志配置,需重新创建容器。
延伸解读
日志驱动的选择
在选择 Docker 日志驱动时,用户应考虑到 json-file 驱动的局限性,尤其是其不支持日志轮换的特性。若不及时处理,可能导致磁盘空间耗尽。相比之下,local 驱动默认启用日志轮换,适合需要长期运行的容器。
配置日志轮换的重要性
启用日志轮换可以有效防止磁盘空间被日志文件占满。用户在配置时应注意设置合适的最大文件大小和文件数量,以平衡日志存储与磁盘使用。建议定期检查日志配置,确保系统稳定运行。
重启服务的必要性
更改 Docker 日志驱动后,必须重启 Docker 服务才能应用新配置。用户需注意,现有容器不会自动更新日志设置,需手动重建容器以确保新配置生效。
延伸问答
Docker 默认的日志驱动是什么?
Docker 默认使用 json-file 日志驱动。
为什么 json-file 驱动可能导致磁盘耗尽?
因为 json-file 驱动不支持日志轮换,日志会不断增加,最终可能耗尽磁盘空间。
如何在 Docker 中启用日志轮换?
可以在 /etc/docker/daemon.json 文件中配置日志轮换,示例配置为 {"log-driver": "json-file", "log-opts": {"max-size": "10m", "max-file": "5"}}。
除了 json-file 驱动,还有哪些日志驱动支持日志轮换?
可以切换到 local 驱动,local 驱动默认启用日志轮换。
更改日志驱动后需要做什么?
需要重启 Docker 服务以应用新配置,使用命令:systemctl restart docker。
现有容器如何应用新的日志配置?
现有容器在重启后不会自动应用新日志配置,需要重新创建容器。