2017-06-26 105 views
0

我正在运行一个Docker容器,其中应用程序需要运行autofs服务,但它当前并未默认运行。该容器已经使用supervisord来管理多个后台进程,所以我想我应该将该服务添加到主管的程序列表中。在Docker容器中启动系统服务

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

[program:autofs] 
service = autofs 

会很棒,但这种语法似乎并不支持supervisord。 我应该直接拨打systemctlservice/etc/init.d/autofs吗?

+0

我经常编写systemd-unit脚本来自动启动容器。这非常简单和舒适。 – n2o

+0

我认为这是相反的问题?我希望我的容器启动服务,而不是启动容器的服务。 :) –

+0

哎呀,对不起,我误解了你:D – n2o

回答

0

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

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