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——池未装入或其他原因而导致存储选项失败