在使用Docker的过程中,由于我是在Windows电脑上安装的Docker,在git bash 进入docker容器时报错,信息如下:

$ docker exec -it f62e10a24b20 /bin/sh
the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

按照错误提示,在命令前添加winpty,成功进入容器

$ winpty docker exec -it f62e10a24b20 //bin/bash
root@f62e10a24b20:/#

解决每次开头加一个winpty问题:

调查后发现,这里的问题是使用MinTTY来托管Git Bash提示符。如果您已经为Windows安装了Git,您将会回忆下面的配置窗口。

根据上图,由于安装的时候默认选择了MinTTY,而没有是选择默认的CMD。MinTTY终端模拟器与Windows控制台程序不兼容,除非在命令前面加上winpty前缀。

所以解决问题的方式,要么重新安装一遍,选择默认的CMD即可,要么每次加上winpty。

但是我既想用MinTTY终端又不想每次命令加上winpty这种方式,我们可以通过设置Bash别名来解决,输入下面这条命令即可(桌面启动Git Bash):

#通过修改.bashrc文件,配置环境变量

echo "alias docker='winpty docker'" >> ~/.bashrc

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐