我知道最新的docker compose,我们可以指定基于每个服务的日志记录。例如: -
version: '2'
services:
Sachin:
image: hike/ubuntu:14.04
volumes:
- .:/testDocker
working_dir: /testDocker
logging:
driver: "json-file"
options:
max-size: "25m"
max-file: "2"
command: python -u test.py
我的compose文件中有大量容器。我可以为docker守护程序本身指定日志配置。我只是想知道是否可以在docker compose文件的全局级别指定日志记录配置。像这样的东西
version: '2'
services:
Sachin:
image: hike/ubuntu:14.04
volumes:
- .:/testDocker
working_dir: /testDocker
logging:
driver: "json-file"
options:
max-size: "25m"
max-file: "2"
command: python -u test.py
答案 0 :(得分:11)
您也可以为此配置Docker默认值,所有容器都将具有配置(您可以覆盖每个容器)。
以下是使用YAML锚点的解决方案示例:
version: "2"
services:
proxy:
build: proxy
image: kinoulink/proxy
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
container_name: ktv_manager_proxy
environment:
- HTTP_AUTH_PASSWORD=$KTV_MANAGER_PASSWORD
logging: &logging
driver: "awslogs"
options:
awslogs-region: eu-west-1
awslogs-group: docker
rancher:
image: rancher/server:v1.1.3
volumes:
- rancher_mysql:/var/lib/mysql
- rancher_cattle:/var/lib/cattle
labels:
ktv.infra.proxy.domain: 'rancher'
ktv.infra.proxy.port: '8080'
logging:
<<: *logging
从v3.4开始(如@tekHedd所说),你可以使用&#34;扩展字段&#34;语法:
version: "3.4"
x-logging:
&default-logging
driver: "awslogs"
options:
awslogs-region: eu-west-1
awslogs-group: docker
services:
proxy:
build: proxy
image: kinoulink/proxy
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
container_name: ktv_manager_proxy
environment:
- HTTP_AUTH_PASSWORD=$KTV_MANAGER_PASSWORD
logging: *default-logging
rancher:
image: rancher/server:v1.1.3
volumes:
- rancher_mysql:/var/lib/mysql
- rancher_cattle:/var/lib/cattle
labels:
ktv.infra.proxy.domain: 'rancher'
ktv.infra.proxy.port: '8080'
logging: *default-logging
答案 1 :(得分:2)
此时不可能。您可以使用YAML锚点将相同的结构注入每个服务,而不是重复它。