Docker compose未在/etc/Docker/daemon.json中读取日志记录配置
我有一个Docker compose未在/etc/Docker/daemon.json中读取日志记录配置,docker,docker-compose,Docker,Docker Compose,我有一个daemon.json文件,存储在/etc/docker/daemon.json中。要使用以下内容配置docker守护程序: { "log-driver" : "syslog", "log-opts": { "syslog-facility": "local1", "tag": "{{.Name}}" }, "storage-driver": "devicemapper", "storage-opts": [ "dm.fs=xfs",
daemon.json
文件,存储在/etc/docker/daemon.json
中。要使用以下内容配置docker守护程序:
{
"log-driver" : "syslog",
"log-opts": {
"syslog-facility": "local1",
"tag": "{{.Name}}"
},
"storage-driver": "devicemapper",
"storage-opts": [
"dm.fs=xfs",
"dm.thinpooldev=/dev/mapper/vg00-docker--pool",
"dm.use_deferred_removal=true"
]
}
没有任何docker compose服务配置了日志选项,也没有任何docker容器配置为在其cmd
或入口点中以--log driver
开头
检查docker info
命令的输出,我可以验证日志驱动程序是否设置为syslog
但是,在运行docker compose堆栈时,使用命令docker inspect--format={{{.HostConfig.LogConfig.Type}}}
检查所有容器时,它们仍然显示json文件
,在我看来,似乎docker compose
不尊重/etc/docker/daemon.json
配置文件,仅用于日志记录配置,因为存储驱动程序设置正确
我用来运行它的docker版本是17.12.0
,docker compose位于1.19.0
/etc/docker/daemon.json
是默认配置文件,docker daemon应该在启动时访问(如果存在)。根据配置,您的文件中可能有错误(因为根据语法,它看起来正常)
让我们尝试在启用调试的情况下强制读取配置文件,并查看它显示的错误。
/usr/bin/dockerd stop
/usr/bin/dockerd start -D -l debug --config-file /etc/docker/daemon.json
之后,您可以使用journalctl-u docker查看日志
或者,您知道,您可以轻松地测试每个配置参数,通过cli而不是json配置文件逐个传递它们,以找出其中哪些导致配置未加载
/usr/bin/dockerd stop
/usr/bin/dockerd start -D -l debug --log-driver syslog --storage-driver devicemapper ...
一个接一个地添加,您将能够检查它是否因为/dev/mapper/vg00 docker——池未装入或其他原因而导致存储选项失败