Py学习  »  docker

docker archlinux映像:系统尚未以systemd作为init System(PID 1)启动。不能操作

Santhosh Yedidi • 4 年前 • 1071 次点击  

我正在使用docker hub中的archlinux/base官方图像。

我正在尝试使用systemctl,它说。

$ docker run --rm -it ac16c4b756ed systemctl start httpd     
System has not been booted with systemd as init system (PID 1). Can't operate.

如何解决这个问题。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52209
 
1071 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Guido U. Draheim
Reply   •   1 楼
Guido U. Draheim    5 年前

好吧,“systemctl”本身不会做任何事情,但是它会要求systemd守护进程执行一些任务。它通常通过插座与它通信。所以systemd守护进程必须已经启动。如果需要的话,有一些基本映像实际上会以PID-1的形式运行systemd。

但就我个人而言,我不建议这样做。如果您确实需要坚持运行systemctl命令,那么您还可以尝试使用 docker-systemctl-replacement 在那个操作系统上也有脚本。它还可以用作容器的PID-1。

King Chung Huang
Reply   •   2 楼
King Chung Huang    5 年前

如果您的目标是运行Apache Web服务器(httpd),那么应该使用 httpd image .

Docker容器通常用于运行单个进程。因此,您通常不会设计一个容器来将systemd之类的东西作为根进程运行,然后将httpd作为子进程运行。你可以直接在前台运行httpd。httpd图像可以做到这一点。