在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
让我知道你的发现。