在Docker容器中启动系统服务
我正在运行一个Docker容器,其中应用程序需要运行autofs
服务,但它当前不是默认运行的。 容器已经使用supervisord
来pipe理几个后台进程,所以我想我应该添加服务到主pipe的程序列表。
有没有办法做到这一点,而不是重复/etc/init.d/autofs
许多逻辑? 就像是:
[program:autofs] service = autofs
会很棒,但是这个语法似乎并不支持supervisord。 我应该直接调用systemctl
, service
还是/etc/init.d/autofs
?
你需要服务在主机上运行吗? 在这种情况下,您可能需要添加各种安装点以便能够与容器中的主机systemd进行交互,并使用systemctl
手动启动服务。
我们在Atomic Host上使用的替代方法(也可用于其他系统)来pipe理容器中的系统服务,这就是我们所说的“系统容器”。 我们使用systemd来启动和pipe理一个runC容器。 通过这种方式,您可以直接在systemd的模板configuration文件中指定对另一个服务的依赖关系。