使用独立的 centos 7 安装软件后 commit 为新的镜像,在 dockerfile 里通过添加 CMD ["/usr/sbin/init"] 这个命令来实现程序在容器中的开机自启动,并在 docker run 时添加参数 --privileged 获取容器内真正的 root 权限。
在 docker run 命令中添加 --privileged=true 参数,表示以特权模式运行容器,特权模式允许容器内的进程拥有与宿主机相同的权限,这样就可以执行一些需要特权的任务。当我们在容器内执行需要特权的 /usr/sbin/init (这个文件软链接到 /lib/systemd/systemd,/lib/systemd/systemd 可以管理所有系统资源,即 systemctl)命令时,容器内的进程会以宿主机的 init 进程为父进程,从而能够正常自启动和管理系统服务。
https://blog.csdn.net/jzg5845201314/article/details/105839468