有没有办法从docker镜像启动服务,无法启动预启用的systemd镜像(255)

有没有办法从docker镜像启动服务,无法启动预启用的systemd镜像(255)

我想从此开始一些服务部分到目前为止已经尝试了所有方法,但没有任何想法。我有一个 debian 10 VPS,没有 root 访问权限,我一直期待找到另一种方法来做到这一点。

在我的 VPS 上,我可以安装 ubuntu,并且安装预启用的 systemd 映像没有问题,我一直在使用此映像:JREI/Systemd-debian,JREI/Systemd-ubuntu并发挥作用。

但在这种情况下,VPS 我可以毫无问题地下载,但当我用命令启动它时:

JREI/Systemd-debian 在开发者网站上的描述如下:


   1. Run the container as a daemon

docker run -d --name systemd-debian --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-debian

or if it doesn't work

docker run -d --name systemd-debian --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-debian

  2.  Enter to the container

docker exec -it systemd-debian sh

  3.  Remove the container

docker rm -f systemd-debian

JREI/Systemd-ubuntu 在开发者网站上的描述如下:


    Run the container as a daemon

docker run -d --name systemd-ubuntu --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu

or if it doesn't work

docker run -d --name systemd-ubuntu --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu

    Enter to the container

docker exec -it systemd-ubuntu sh

    Remove the container

docker rm -f systemd-ubuntu

但在这种情况下,当我使用命令时,它只是像这样打印:

$ sudo docker run -d --name systemd-debian --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-debian
Unable to find image 'jrei/systemd-debian:latest' locally
latest: Pulling from jrei/systemd-debian
e756f3fdd6a3: Already exists
cc35b3a645b1: Pull complete
a2c2f4c9293b: Pull complete
16d72487363d: Pull complete
Digest: sha256:dcd311f3192a25be0ff12b2f3b283c00eb51f66e2716c498b8e5c15a35085075
Status: Downloaded newer image for jrei/systemd-debian:latest
32e100dfef82209a0e7810be37fbff837cbe1e69d718b4eb4ceba69e7161be24

什么也没发生,容器自动退出并出现错误 (255)

使用日志命令,我可以看到:

Failed to create /init.scope control group: Read-only file system
Failed to allocate manager object: Read-only file system
[!!!!!!] Failed to allocate manager object.
Exiting PID 1...

之前或运行此命令时,预启用的 systemd 映像从未遇到过任何问题,但在这个 VPS 上我遇到了这种问题,这让我摸不着头脑。

然后开始做 Dockerfile :

FROM debian

ENV container docker
ENV DEBIAN_FRONTEND noninteractive

# Enable systemd.
RUN apt-get update ; \
    apt-get install -y systemd systemd-sysv; \
    apt-get clean ; \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ; \
    rm -rf /lib/systemd/system/multi-user.target.wants/* ; \
    rm -rf /etc/systemd/system/*.wants/* ; \
    rm -rf /lib/systemd/system/local-fs.target.wants/* ; \
    rm -rf /lib/systemd/system/sockets.target.wants/*udev* ; \
    rm -rf /lib/systemd/system/sockets.target.wants/*initctl* ; \
    rm -rf /lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup* ; \
    rm -rf /lib/systemd/system/systemd-update-utmp*

VOLUME [ "/sys/fs/cgroup" ]
CMD ["/lib/systemd/systemd"]

并使用此命令开始构建它:

sudo docker build -t kastra .

然后运行它:

sudo docker run  --name mintmefinal --tty   --privileged   --volume /sys/fs/cgroup:/sys/fs/cgroup:ro  kastra

我再次直接面对这个错误:

##################################### LOGS ###################################
systemd 247.3-7 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
Detected virtualization docker.
Detected architecture x86-64.

Welcome to Debian GNU/Linux 11 (bullseye)!

Set hostname to <526d66e546b7>.
Failed to create /init.scope control group: Read-only file system
Failed to allocate manager object: Read-only file system
[!!!!!!] Failed to allocate manager object.
Exiting PID 1...

我突然想到,也许我正在做的事情不需要这么多工作,但只是想问一下,也许这是另一种方式,我不知道,如果有人能帮助我解决这个问题,我将非常感激我疯了。

是否还有其他方法可以在没有 systemctl 的情况下启动这些服务,或者我做错了什么。

相关内容