使 Docker 日志持久化

bha*_*077 7 logging docker docker-compose docker-logs

我一直在使用 docker-compose 来设置一些 docker 容器。我知道可以使用查看日志docker logs <container-name>

所有日志都会被打印到,STDOUT并且STDERR当容器运行时,容器中不会生成日志“文件”。

但是,当使用或 之docker logs类的命令删除它们各自的容器时,这些日志(从命令获取)也会被删除。docker-compose downdocker-compose rm

当容器被创建并再次启动时,会有一组新的日志。不存在上次“运行”的日志。

我很好奇是否有一种方法可以防止日志与其容器一起被删除。

理想情况下,即使容器被移除,我也希望保留以前的所有日志。

Hir*_*uri 1

我相信你有两条路可以走:

让容器登录到文件中

您可以重新配置容器内的应用程序以写入日志文件而不是 stdout/stderr。正如您所说,即使容器被删除,您也希望保留日志。因此,请确保文件存储在(绑定)安装的卷中。

重新配置docker来存储日志

重新配置 docker 以使用不同的日志记录驱动程序。这尤其有用,因为它可以防止您更改每个容器。