我使用的是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.
如何解决这个问题。
发布于 2019-03-04 13:05:31
如果您的目标是运行Apache Web Server (httpd),则应该使用httpd image。
Docker容器通常用于运行单个进程。因此,您通常不会将容器设计为将systemd之类的内容作为根进程运行,然后将httpd作为子进程运行。您可以直接在前台运行httpd。httpd图像可以做到这一点。
发布于 2019-03-04 17:39:26
好吧,"systemctl“本身不会做任何事情,但它会要求systemd守护进程执行一些任务。它通常通过套接字与之通信。因此,systemd守护进程必须已经启动。如果需要的话,有一些基础镜像会将systemd实际运行为PID-1。
然而,就我个人而言,我并不建议这样做。如果您确实需要继续运行systemctl命令,那么您也可以尝试在该操作系统上使用docker-systemctl-replacement脚本。它还可以用作容器的PID-1。
https://stackoverflow.com/questions/54976063
复制相似问题