我想在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
答案 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