我想从此开始一些服务部分到目前为止已经尝试了所有方法,但没有任何想法。我有一个 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 的情况下启动这些服务,或者我做错了什么。