Dockerfile的:
...
VOLUME [ “/sys/fs/cgroup” ]
CMD ["/usr/sbin/init"]
我在Centos7上构建并运行centos7 docker容器。
$ docker run --privileged -ti -d -e "container=docker" --name centos7-server -v /sys/fs/cgroup:/sys/fs/cgroup centos7:81ee535 /usr/sbin/init
之后,下面的建议
$ docker stop centos7-server
..永远循环..
如果将/ usr / sbin / init初始化为/ bin / bash,则centos7-server将被成功停止(成功)。
但是,我想在centos7-server容器中使用systemd。
是什么原因引起的?
最佳答案
sbin/init
程序(也称为init)协调其余的引导过程并为用户配置环境。
使用CentOS docker ,init总是在CMD / ENTRYPOINT
之前执行。因此,不能将init用作 COMMAND
或ENTRYPOINT
。
毫无疑问,不必担心init。不要使用docker run
或docker exec
来启动它,因为无论如何都会执行它。
init程序通过在相应的rc目录中查找/ etc / inittab中指定的默认运行级别来启动所有后台进程。 rc目录的编号与它们所代表的运行级别相对应。例如,/ etc / rc.d / rc5.d /是运行级别5的目录。因此,除非您关闭系统,否则将其停止是没有意义的。
关于docker - docker 1.9.1,不会停止docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37853575/