我正在尝试在 docker 中启动一个具有许多 init 和 upstart 服务的系统,但出现此错误。
initctl: Unable to connect to Upstart:
Failed to connect to socket /com/ubuntu/upstart: Connection refused
所有解决方法都建议建立到 /bin/true 的硬链接以消除错误。但我需要让这些服务由新贵管理,以实现重新启动能力并让新贵发出事件才能工作......
由于 docker 似乎不支持这一点,我正在考虑编写一个脚本来启动 /etc/rcX.d 中的所有服务并跟踪 PID 的粗暴黑客。这并不能解决新贵缺乏发出事件的问题。
关于如何在 docker 中启动 upstart 进程还有其他想法吗?
不幸的是,upstart 不能在 docker 容器内工作,因为它们对 init 系统做了一些魔法。
This issue解释:
如果您的应用程序使用 upstart,则这不太适合裸露的 docker 镜像,如果它们转移 /sbin/init 或
将 /sbin/initctl 更改为 /bin/true 或 /dev/null 之类的内容。
如果该应用程序具有旧式 systemV initscript 并且 initctl 命令尚未执行,则您的应用程序可以使用服务来启动
改道了。
以 salt-minion 为例,在 ubuntu 上,包装使用了新贵
作业并且没有经典的初始化脚本,因此它不会启动是正常的
两种情况。
And this one says:
因为 Docker 将默认的 /sbin/init 替换为自己的,所以有
无法在 Docker 容器内运行 Upstart init。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)