Docker基础:docker run -it 加与不加/bin/bash的区别是什么
两条
docker run命令的差异说明 核心区别
- 执行
docker run -it centos时,你没有手动指定容器启动命令,Docker会直接使用centos镜像内置的默认启动命令运行容器 - 执行
docker run -it centos /bin/bash时,你显式指定了容器启动命令为/bin/bash,该命令会覆盖镜像内置的默认启动命令执行
测试表现一致的原因
官方CentOS镜像的默认启动命令本身就配置为/bin/bash,因此你显式指定命令和调用镜像默认命令指向的是同一个程序,使用感受上没有任何区别。
差异显现的场景
你可以更换其他镜像快速验证差异,比如官方Nginx镜像的默认启动命令是启动Nginx服务进程:
- 执行
docker run -it nginx会直接启动Nginx服务,不会进入交互式终端 - 执行
docker run -it nginx /bin/bash会覆盖默认的Nginx启动命令,直接进入容器的交互式终端
另外如果你基于官方CentOS镜像制作自定义镜像,将默认启动命令修改为/bin/sh,那么不带/bin/bash参数的docker run命令会进入sh终端,带参数的命令依然会进入bash终端,二者差异也会直观体现。
内容的提问来源于stack exchange,提问作者Lake_Lagunita
相关产品推荐
相关产品推荐

