在Docker容器中启动系统服务

我正在运行一个Docker容器,其中应用程序需要运行autofs服务,但它当前不是默认运行的。 容器已经使用supervisord来pipe理几个后台进程,所以我想我应该添加服务到主pipe的程序列表。

有没有办法做到这一点,而不是重复/etc/init.d/autofs许多逻辑? 就像是:

 [program:autofs] service = autofs 

会很棒,但是这个语法似乎并不支持supervisord。 我应该直接调用systemctlservice还是/etc/init.d/autofs

你需要服务在主机上运行吗? 在这种情况下,您可能需要添加各种安装点以便能够与容器中的主机systemd进行交互,并使用systemctl手动启动服务。

我们在Atomic Host上使用的替代方法(也可用于其他系统)来pipe理容器中的系统服务,这就是我们所说的“系统容器”。 我们使用systemd来启动和pipe理一个runC容器。 通过这种方式,您可以直接在systemd的模板configuration文件中指定对另一个服务的依赖关系。