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 ..
什么可能导致问题?
1 回答
sbin/init
程序(也称为init)协调引导过程的其余部分并为用户配置环境 .使用CentOS docker,init始终在
CMD / ENTRYPOINT
之前执行 . 所以, it has no sense to use init asCOMMAND
或ENTRYPOINT
.明确地说,不要
docker run
也不要docker exec
启动它,因为无论如何它都会被执行 . init程序通过在适当的rc目录中查找指定为/ etc / inittab中的缺省值的运行级别来启动所有后台进程 . rc目录编号为对应于它们所代表的运行级别 . 例如,/ etc / rc.d / rc5.d /是运行级别5的目录 . 因此,除非你关闭系统,否则没有意义停止它 .