Я пытаюсь создать докер-контейнер на основе systemd, но при попытке запустить встроенный контейнер происходит сбой системы.Я думаю, что запуск init в контейнере может вызывать конфликт и каким-то образом конфликтует с systemd на моем хосте.
Когда я пытаюсь запустить докер-контейнер, я выхожу из своей учетной записи и кратко вижу, как это выглядитмоя система проходит процесс загрузки.Мой хост работает под управлением Arch Linux с linux 4.20.7.
Только когда я пытаюсь "загрузить" контейнер, запустив systemd через /sbin/init
, возникает проблема.
docker run -it \
--volume=/sys/fs/cgroup:/sys/fs/cgroup:rw \
--privileged 66304e3bc48
Dockerfile (адаптировано из solita / ubuntu-systemd ):
FROM ubuntu:18.04
# Don't start any optional services.
RUN find /etc/systemd/system \
/lib/systemd/system \
-path '*.wants/*' \
-not -name '*journald*' \
-not -name '*systemd-tmpfiles*' \
-not -name '*systemd-user-sessions*' \
-exec rm \{} \;
RUN apt-get update && \
apt-get install --yes \
python sudo bash ca-certificates dbus systemd && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN systemctl set-default multi-user.target
RUN systemctl mask dev-hugepages.mount sys-fs-fuse-connections.mount
STOPSIGNAL SIGRTMIN+3
# Workaround for docker/docker#27202, technique based on comments from docker/docker#9212
CMD ["/bin/bash", "-c", "exec /sbin/init --log-target=journal 3>&1"]
Я ожидаю, что контейнер просто загрузится с запущенной systemd, и я не вашчто я могу делать не так.