在Docker-Compose中禁用一个容器的日志记录

时间:2016-01-04 11:39:15

标签: docker docker-compose

我有一个使用Docker compose启动的Web应用程序,我想禁用所有日志记录(或者至少将其打印到syslog而不是文件)。

当我的Web应用程序运行时,它可以在启动时快速生成11GB的日志文件,因此这会非常快地占用我的磁盘空间。

我知道普通的docker的运行命令有logging options但是在Docker Compose中我使用

  

Docker-compose up

在应用程序文件夹中启动我的应用程序。我如何在我的情况下启用此功能?我没有在网上找到具体案例。

3 个答案:

答案 0 :(得分:73)

您应该可以使用logging功能。尝试将驱动程序设置为“无”

logging:
    driver: none

答案 1 :(得分:4)

对于快速配置示例,类似

version: '3'
services:
    'postgres':
        image: postgres:9.6
        logging:
            driver: none 

答案 2 :(得分:2)

作为第二个选项,您可能对不完全删除日志记录('none' 值的作用)感兴趣,但是将某些服务的日志存储在 syslog 中,有它的驱动程序,例如:

certbot:
  image: certbot/certbot
  restart: unless-stopped
  logging:
    driver: "syslog"

请注意,syslog 守护程序必须在主机上运行。要查看日志,请使用例如:journalctl -n 100 --no-pager