如何运行使用最新版本Ubuntu(18.10)中SystemD的Docker容器?
我正在尝试执行一个使用“ubuntu:latest”构建的Docker映像,当我运行容器时,我不断收到系统错误消息:如何运行使用最新版本Ubuntu(18.10)中SystemD的Docker容器?,docker,ubuntu,systemd,Docker,Ubuntu,Systemd,我正在尝试执行一个使用“ubuntu:latest”构建的Docker映像,当我运行容器时,我不断收到系统错误消息: System has not been booted with systemd as init system (PID 1). Can't operate. docker run -d --name stack_overflow_53750952 --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubun
System has not been booted with systemd as init system (PID 1). Can't operate.
docker run -d --name stack_overflow_53750952 --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu:18.04
docker exec -it stack_overflow_53750952 bash
如果我尝试使用docker run-it-e container=docker your image name/sbin/init生成容器,我会得到以下错误:
Failed to mount tmpfs at /run: Operation not permitted
Failed to mount tmpfs at /run/lock: Operation not permitted
[!!!!!!] Failed to mount API filesystems, freezing.
Freezing execution.
我应该尝试不同的方法吗?升级到Ubuntu Bionic并尝试
/sbin/init
方法您可以使用不同的版本解决此问题,如16.04:
docker run -d \
-h ubuntu \
--name ubuntu \
--privileged \
docker.io/library/ubuntu:16.04 /sbin/init
运行后,可以使用以下命令访问:
docker exec -it ubuntu /bin/bash
此版本使用
systemd
为了在docker内部运行Ubuntu18systemd,您可以使用以下方法:
运行容器:
System has not been booted with systemd as init system (PID 1). Can't operate.
docker run -d --name stack_overflow_53750952 --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu:18.04
docker exec -it stack_overflow_53750952 bash
在容器中输入:
System has not been booted with systemd as init system (PID 1). Can't operate.
docker run -d --name stack_overflow_53750952 --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu:18.04
docker exec -it stack_overflow_53750952 bash
如你所见:
您通常不希望在容器中运行systemd之类的流程管理器(或其他任何东西)。你到底想做什么?我想启动一个Nginx和SSHD容器。如果所有Linux发行版都已经迁移到SystemD,那么如何避免SystemD?似乎这是一个应该解决的问题?已经解决了。容器中不使用处理器管理器。你启动你想要的服务,就这样。看看nginx、httpd、mysql等的任何官方容器,您没有在容器中运行ssh;这就是docker exec的作用。嗯,好的,谢谢。我需要SSH,因为我使用Ansible发送配置文件。:)听起来像是在像虚拟机一样管理容器。我强烈建议不要那样做。使用ansible最应该做的就是创建一个映像并运行容器。我的问题是针对Ubuntu,而不是CentOS