Docker,系统尚未使用 systemd 作为初始化系统 (PID 1) 启动。无法操作

Docker,系统尚未使用 systemd 作为初始化系统 (PID 1) 启动。无法操作

我正在尝试为我们创建的其中一个 centos 服务创建 docker 容器。

我们有 2 个 rpm 文件。

在 centos 8 的基础镜像上安装后。

我在其中安装了那 2 个 rpm 文件。

但是,当我尝试启动服务时,出现了这个错误。当我运行 systemctl start <service_name>

系统尚未使用 systemd 作为初始化系统 (PID 1) 启动。无法操作

无法连接到总线:主机已关闭

根据不同帖子的反馈,我尝试按照以下步骤创建容器。

docker 运行-it -p 8080:80 -p 16700:16700 centos

docker run -it -p 8080:80 -p 16700:16700 --privileged=true centos

两个问题都一样。请提出建议。

答案1

Docker 的设计理念是每个容器一个服务。虽然有办法让 systemd 在容器中运行,但据我所知,这些方法仅在 ci 测试作业环境中有用。

通过在服务的单元文件中查找指令来启动进程,而不是查找运行时systemctl执行的实际命令。即应该在 Dockerfile 中设置为指令的命令(您可能需要对其进行一些调整)。systemdsystemctl start servicenameExecStartCMD

相关内容