在Windows上运行docker镜像的结果是“oci runtime error:exec:”bash“:可执行文件在$ PATH中找不到。

我在Windows上运行Docker(“Docker Toolbox”,而不是“Docker for Windows”)。

我已经用一个rails应用程序在里面构build了一个图像。 它可以在我的Mac OS上正常工作,但会在Windows上进行生产。

在两台机器上使用Docker 1.12和docker-machine 0.8.0。

当我创build一台机器并尝试从图像运行容器时,我这样做:

docker run -it myRepo:myTag bash 

这使我在Mac OS上打开了一个交互式terminal,但Windows 7和Windows Server 2011都响应:

“来自守护进程的错误响应:oci运行时错误:exec:”bash“:在$ PATH中找不到可执行文件。

我通过Docker快速入门terminal使用MINGW64 shell,但是旧的cmd.exe返回相同的结果。

有人可以帮我解决这个问题吗? 我已经尝试了几个小时来find一个解决scheme,但是Windows的答案太less了。

先谢谢你!

我也使用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 ,它应该在你的容器内工作。

另一个select是尝试使用winpty的tty:

  $ 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 

让我知道你的发现。