如何修改Docker Desktop容器CLI按钮默认执行的shell为/bin/bash?
可行实现方案
以下方案按适用场景区分:
方案1:针对单个容器设置默认Shell(推荐,无兼容性问题)
Docker Desktop的CLI按钮会优先读取容器内部的SHELL环境变量作为默认启动的Shell,你可以按以下两种方式配置:
- 构建镜像时直接在Dockerfile中指定默认Shell,后续所有基于该镜像启动的容器都会默认用Bash:
ENV SHELL=/bin/bash # 也可以用SHELL指令设置: SHELL ["/bin/bash", "-c"] - 启动容器时临时指定环境变量,仅对当前启动的容器生效:
docker run -itd --env SHELL=/bin/bash <镜像名>
注意:该方案要求容器镜像内已经预装了Bash,部分轻量镜像(如alpine基础镜像)默认没有Bash,需要先在Dockerfile中安装后再配置
方案2:修改Docker Desktop全局默认执行命令(适用于所有容器)
如果你需要所有容器的CLI按钮都默认调用/bin/bash,可以按以下步骤操作:
- 打开Docker Desktop设置页,找到Features in Development -> Docker Extensions 选项
- 勾选「Allow custom CLI commands for containers」选项并保存重启Docker Desktop
- 重启后进入容器列表,点击任意容器右侧的三个点(更多操作),选择「Configure CLI command」
- 将默认的
docker exec -it {{containerId}} /bin/sh修改为docker exec -it {{containerId}} /bin/bash,保存后全局生效
注意:该方案仅适用于Docker Desktop 4.16及以上版本,且如果某个容器内未预装Bash,点击CLI按钮会报错
临时替代方案
如果不想修改任何配置,点击默认的CLI按钮进入/bin/sh会话后,直接输入bash命令即可切换到Bash会话。
内容的提问来源于stack exchange,提问作者Sharan
相关产品推荐
相关产品推荐

