在Windows上运行docker映像将导致;oci运行时错误:exec:";bash";:在$PATH中找不到可执行文件;
我在Windows上运行Docker(“Docker工具箱”,而不是“Docker for Windows”) 我构建了一个内置rails应用程序的图像。它可以在我的Mac操作系统上正常工作,但在Windows上会影响生产 在两台机器上使用Docker 1.12和Docker machine 0.8.0 当我创建一台机器并尝试从映像运行容器时,我会:在Windows上运行docker映像将导致;oci运行时错误:exec:";bash";:在$PATH中找不到可执行文件;,windows,docker,docker-machine,Windows,Docker,Docker Machine,我在Windows上运行Docker(“Docker工具箱”,而不是“Docker for Windows”) 我构建了一个内置rails应用程序的图像。它可以在我的Mac操作系统上正常工作,但在Windows上会影响生产 在两台机器上使用Docker 1.12和Docker machine 0.8.0 当我创建一台机器并尝试从映像运行容器时,我会: docker run -it myRepo:myTag bash 这在Mac OS上为我打开了一个交互式终端,但Windows 7和Window
docker run -it myRepo:myTag bash
这在Mac OS上为我打开了一个交互式终端,但Windows 7和Windows Server 2011均响应:
“来自守护进程的错误响应:oci运行时错误:exec:“bash”:
在$PATH中找不到可执行文件。“
我通过Docker Quickstart终端使用MINGW64shell,但是旧的cmd.exe返回相同的结果
有人能帮我解决这个问题吗?我已经尝试了几个小时来寻找解决方案,但是对于Windows来说,答案太少了
提前谢谢你 我也使用Windows 7和MINGW64。以下是我使用
nginx
作为示例得到的结果:
$docker run -it nginx bash
cannot enable tty mode on non tty input
我认为你不能用MINGW64打开tty
您可以尝试:
$docker run -i nginx bash
ls
bin
...
因此,您将不会收到任何提示或任何您在容器内的指示。只要运行ls
,它就会在您的容器中工作
另一个选项是尝试对tty使用winpty
:
$ winpty docker run -it myRepo:myTag bash
root@644f59e6f818:/#
你试过了吗
$ winpty docker run -it myRepo:myTag /bin/bash
我不知道您提到的问题,但我以前在映射卷时见过它
如果使用MINGW64映射卷,则需要在本地映射之前添加额外的/
。例如:
docker run -p 8080:80 -v "/$PWD":/var/share/nginx/html nginx
让我知道您的发现。您必须安装MSYS2(如果它有外壳,MinGW64可能还可以),然后在windows系统或用户路径中提供
bash.exe的路径。感谢您提出的解决方案。我会尝试一下并给你反馈。