在docker compose中指定max log json文件大小

时间:2016-08-22 11:46:07

标签: docker docker-compose

我想在json-file中指定docker-compose.yml的最大文件大小,就像这样,

log-opt:
  max-size=50m

但是当我尝试docker-compose up时,它给我一个错误,

ERROR: In file './docker-compose.yml', service 'log-opt' must be a mapping not a string.

如何解决?

PS。我正在使用docker 1.11.2

2 个答案:

答案 0 :(得分:13)

您的yaml语法不太正确。文件说它应该log-opt而不是services: service_name: logging: driver: "json-file" options: max-size: "50m" https://docs.docker.com/compose/compose-file/#/logging)。试试这个?

{{1}}

您应该在每个服务中定义日志记录部分,而不是直接在docker-compose的根目录中。

答案 1 :(得分:1)

max-size存储日志文件,直到达到最大大小VALUE(例如:“ 2048m”)为止。

示例docker-compose文件配置的最大大小。

version: '3.2'
services:
  logstash:
    image: docker.elastic.co/logstash/logstash:7.8.0
    command:  --config.reload.automatic  
    user: savio:savio
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "2048m"
    ports:
      - "9600:9600" 

如果要更改已经运行的容器,则需要停止并移除该容器,然后重新启动。

检查日志设置

]# docker container inspect -f '{{.HostConfig.LogConfig}}' <ContainerName>

有关更多详细信息:link