在没有 Systemd 的情况下启动服务?

Mor*_*ore 11 fedora centos systemd docker

是否可以在不使用 systemd (systemctl) 的情况下在 CentOS/Fedora 发行版中启动服务和启动后?如果是,如何?

Systemd 在非特权 docker 容器中不起作用;因此,此时我只能在特权容器中启动服务,而我不想这样做。

谢谢。

小智 13

有一个很棒的项目 - docker-systemctl-replacement,您可以在其中获得替代systemctl命令来启动/停止服务而无需systemd

systemctl替换不是原始的完全重新实现,systemctl但它在实践中效果很好。

它可以安装如下:

wget https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py -O /usr/local/bin/systemctl
Run Code Online (Sandbox Code Playgroud)

  • 对于较新的系统(默认使用 Python3,如 Ubuntu 20.04),使用 `systemctl3.py` 而不是 `systemctl.py`。 (3认同)

mat*_*tdm 0

一般来说,现在的模型是直接将应用程序作为容器中的单个进程启动。这种做法有其缺陷,但也似乎是当前容器化工作的主要思路。

\n\n

其他模型 \xe2\x80\x94 容器更像是一个轻量级虚拟机,运行 \xe2\x80\x94 的更多支持基础设施也很有用,但目前我们(我在 Fedora 上工作)没有内置的 - in / 除 systemd 之外的多服务容器的预定义模型。最终的目标是让 systemd 也能在非特权容器中工作。(请参阅上游计划的容器接口规范,或者Dan Walsh 的这篇文章提供了 Fedora 中工作的快速更新。)与此同时,有些人已经将其破解为工作 \xe2\x80\x94 请参阅此博客文章

\n