docker run 最后一个参数/bin/bash和/usr/sbin/init有什么区别?(/usr/sbin/init 启动容器之后可以使用systemctl方法)
Posted Dontla
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker run 最后一个参数/bin/bash和/usr/sbin/init有什么区别?(/usr/sbin/init 启动容器之后可以使用systemctl方法)相关的知识,希望对你有一定的参考价值。
首先,docker run -it centos 的意思是,为centos这个镜像创建一个容器
-it
就等于-i
和-t
,这两个参数的作用是,为该docker创建一个伪终端,这样就可以进入到容器的交互模式?(也就是直接进入到容器里面)
后面的/bin/bash
的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash
就表示启动容器后启动bash。
参考文章:docker run -it centos /bin/bash 后面的 bin/bash的作用
/usr/sbin/init
启动容器之后可以使用systemctl方法
--privileged=true
获取宿主机root权限(特殊权限-
)
su
命令和su -
命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。
参考文章:docker -privileged和/usr/sbin/init
/usr/sbin/init:初始容器里的CENTOS,用于启动dbus-daemon
参考文章:Docker容器Centos不能使用systemctl命令问题
以上是关于docker run 最后一个参数/bin/bash和/usr/sbin/init有什么区别?(/usr/sbin/init 启动容器之后可以使用systemctl方法)的主要内容,如果未能解决你的问题,请参考以下文章