如何让Docker在msys2 bash中正常工作?
问题描述:
因为我更喜欢使用bash(并且总是使用git),所以我试着运行docker run -it ubuntu bash
(成功后hello-world
),这不幸导致了invalid handle
错误。改为使用cmd.exe
,它工作正常。如何让Docker在msys2 bash中正常工作?
答
原来问题是我用ConEmu来主持mintty.exe
。直接使用mingw64.exe
(或mintty.exe
)代替,错误读取为
输入设备不是TTY。如果您正在使用mintty,尝试用前缀“winpty”
命令代替,并提供有用的信息,前缀winpty
,然后也是从内ConEmu工作。但请注意,winpty
也会混淆您的命令行参数,例如winpty echo yes /no
收益率yes C:/yourmsyspath/no
...
相关:https://github.com/docker/toolbox/issues/231,https://forums.docker.com/t/what-happened-to-winpty-functionality-in -bash-git-bash-on-windows/8774 –
无论是mintty还是winpty都不需要在ConEmu中运行Docker。 – Maximus
@Maximus的确,当我简单地使用msys2的'bash.exe'时,它直接工作(除了使用卷时的路径转换问题)。还有一些其他的问题,比如PS1和UTF-8的混淆,最初让我使用'mintty',但是我再也不会这样了。而且你用ConEmu做的_awesome_工作:) –