我有一个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"
]
}
没有一个坞-组合服务配置了日志选项,也没有配置任何停靠容器开始使用--log-driver
在其cmd
或entrypoint
中。
检查docker info
命令的输出,我可以验证日志驱动程序是否设置为syslog
。
但是,当运行一个坞-组合堆栈时,所有容器在使用命令json-file
检查它们时仍然会显示它们,在我看来,docker inspect --format='{{.HostConfig.LogConfig.Type}}'
似乎不尊重/etc/docker/daemon.json
配置文件,只是为了日志配置,因为storage-driver
设置正确。
我用来运行的码头版本是17.12.0
,docker-compose在1.19.0
发布于 2018-04-20 02:11:41
/etc/docker/daemon.json
是默认配置文件,如果启动时存在,则停靠守护进程应该访问。根据配置,您的文件中可能有错误(因为根据语法,它看起来很好)。
让我们尝试强制在启用调试的情况下读取配置文件,并查看它显示了哪些错误.
/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-池没有挂载或其他原因,它是否在存储选项中失败。
https://stackoverflow.com/questions/49111573
复制