Windows10系统GitBash执行docker run报输入设备不是TTY如何解决
Windows 10 GitBash Docker TTY 报错排查方案
前置确认
你已经确认了端口运行正常、Ubuntu镜像拉取正确,直接按以下步骤排查:
- 第一步:验证winpty可用性
在GitBash中执行which winpty,如果没有返回有效安装路径,说明你安装的Git for Windows缺失winpty组件,可重装Git for Windows,安装过程中勾选「Enable experimental support for pseudo consoles」选项,即可自动安装winpty。 - 第二步:校验Docker后端兼容配置
打开Docker Desktop设置页:- 若使用WSL2后端:进入「Resources > WSL Integration」,确认你正在使用的WSL发行版(如果是原生Windows GitBash则无需调整)的集成开关已开启,修改后重启Docker生效
- 若使用Hyper-V后端:进入「Features in development」,关闭「Use WSL 2 based engine」选项,重启Docker后重试
- 第三步:修正执行命令
执行命令时不要带前缀$符号,同时可以尝试去掉.exe后缀,测试如下命令:
部分环境下还可以临时修改终端类型后重试:winpty docker run -it --rm ubuntu:14.04 /bin/bashexport TERM=xterm winpty docker run -ti ubuntu:latest bash - 第四步:配置永久生效规则
如果测试成功,可在GitBash中执行以下命令设置别名,后续无需手动加winpty前缀:echo "alias docker='winpty docker'" >> ~/.bashrc source ~/.bashrc - 第五步:备选替代方案
如果以上步骤都无法解决,可直接使用Windows Terminal、系统自带PowerShell执行Docker交互命令,无需添加winpty前缀即可正常运行。
内容的提问来源于stack exchange,提问作者Monttana16
相关产品推荐
相关产品推荐

