在 OS X 上使用 log-driver="syslog" 时出现 docker 错误

Posted

技术标签:

【中文标题】在 OS X 上使用 log-driver="syslog" 时出现 docker 错误【英文标题】:docker error when using log-driver="syslog" on OS X 【发布时间】:2015-05-04 10:37:01 【问题描述】:

在 OS X 上使用 --log-driver="syslog" 时出现 docker 错误

我正在尝试学习如何在 OS X (10.10.3) 上使用 docker 容器,我了解与标准 Linux 实现的差异(需要 boot2docker VM),我想知道是否对我的方式有任何影响可以使用 syslog 记录消息

当我使用 --log-driver="syslog" 选项启动容器时,容器已创建,但启动时出现错误

~$ docker run --log-driver="syslog" --name daemon_dwayne -d ubuntu /bin/sh -c "while true; do echo hello_world; sleep 2; done;"
1f623793049916d5c....
FATA[0000] Error response from daemon: Cannot start container 1f623793049916d5....: Unix syslog delivery error

这在 Linux 机器上运行良好...感谢任何提示

【问题讨论】:

【参考方案1】:

Boot2docker 在一个小型 Linux 虚拟机中运行。默认情况下,syslog 不在 VM 中运行。您可以通过在 VM 中运行 syslogd 来打开它,例如:

$ boot2docker ssh
...
docker@boot2docker:~$ syslogd

如果您再次尝试运行您的容器,它应该可以工作。

您可以通过从 boot2docker 虚拟机内的文件 /var/lib/boot2docker/bootsync.sh 调用 syslogd 来使此更改永久生效,boot2docker 将在启动 Docker 之前执行。

【讨论】:

非常感谢...“默认情况下,系统日志不在虚拟机中运行”忘记检查!!! 在 boot2docker vm 中,syslog 输出附加到/var/log/messages 您知道如何将 syslog 输出链接到 /var/log/messages 以外的其他内容。我尝试使用配置文件 /etc/syslog.conf 但它看起来不起作用。有什么想法吗?

以上是关于在 OS X 上使用 log-driver="syslog" 时出现 docker 错误的主要内容,如果未能解决你的问题,请参考以下文章

OS X 图形框架能否基于自定义缓冲区实现 60 Hz 渲染?

如何在 OS X 上使用 LaTeX

os模块

如何在Mac OS X上安装 Ruby运行环境

ruby 在Mac OS X上使用latexmk

在 OS3.x 上运行时 iPhone OS4 功能链接错误