Docker 没有运行 init。所以服务在启动时不会启动。lxc 在 lxc-start 期间运行 init。由于 Docker 使用 lxc 为什么它没有运行 init。不运行 init 并依赖 supervisord 进行守护程序有什么好处?
Docker 没有运行 init。所以服务在启动时不会启动。lxc 在 lxc-start 期间运行 init。由于 Docker 使用 lxc 为什么它没有运行 init。不运行 init 并依赖 supervisord 进行守护程序有什么好处?
这个问题已在 GitHub 上作为问题提出,并且合并了一个拉取请求以允许
init
从 0.6.x 开始运行):资源
最初的原因 init 没有运行(自0.6.x起无效):
这个答案可能会提供更多帮助,而The Docker Guidebook可能会派上用场。
Docker 是一个应用程序容器,更专注于将应用程序作为容器分发。在这个容器内运行的应用程序/进程是唯一运行的,它们的 init 进程。如果您的进程需要更多应用程序(mysql、mongodb 数据库等),您不会在由一个 init 守护进程管理的 docker 容器内启动这些应用程序,而是启动更多 docker 容器,每个容器都在 docker 容器内。
你可以试试http://phusion.github.io/baseimage-docker/它提供了一个简单的 init 守护进程来在你的 docker 镜像中运行更多的进程(这个是基于 Ubuntu 的),或者你可以试试 LXD http://www.ubuntu .com/cloud/lxd用于更像系统容器的容器技术。