Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何运行使用最新版本Ubuntu(18.10)中SystemD的Docker容器?_Docker_Ubuntu_Systemd - Fatal编程技术网

如何运行使用最新版本Ubuntu(18.10)中SystemD的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

我正在尝试执行一个使用“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-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