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方法)的主要内容,如果未能解决你的问题,请参考以下文章

docker容器中的EntryPoint和CMD命令区别

Docker run最后加/bin/bash遇到的问题

docker的/var/run/docker.sock参数

docker run 参数详解

运行docker-compose run时始终包含参数

docker run 默认工作目录 -w 参数