我正在尝试使用 powershell 使以下 docker run 命令在 Windows 10 中工作。
我熟悉 Windows Ubuntu,但我需要从 powershell 运行它(不要问!)
Docker 确实有效 - 我运行了 Docker 让您执行的简单构建,以确认安装正常。在尝试以下命令时,它给了我一个巨大的错误。我怀疑它来自“-v”?我确实环顾四周,但没有发现与此类问题相关的任何实质内容。
这是我正在运行的命令:
docker run --rm -v C:\PycharmProjects\thera\docker-template\laravel-app:\app composer install
Run Code Online (Sandbox Code Playgroud)
这是回应:
docker run --rm -v C:\PycharmProjects\thera\docker-template\laravel-app:\app composer install
C:\Program Files\Docker\Docker\resources\bin\docker.exe: Error response from daemon: status code not OK but 500: {"Message":"Unhandled exception: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))","StackTrace":" at Windows.UI.Notifications.ToastNotifier.Show(ToastNotification notification)\r\n at Docker.WPF.PromptShareDirectory.<PromptUserAsync>d__0.MoveNext() in C:\\workspaces\\stable-2.3.x\\src\\github.com\\docker\\pinata\\win\\src\\Docker.WPF\\PromptShareDirectory.cs:line 26\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Docker.ApiServices.Mounting.FileSharing.<DoShareAsync>d__6.MoveNext() in C:\\workspaces\\stable-2.3.x\\src\\github.com\\docker\\pinata\\win\\src\\Docker.ApiServices\\Mounting\\FileSharing.cs:line 80\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Docker.ApiServices.Mounting.FileSharing.<ShareAsync>d__4.MoveNext() in C:\\workspaces\\stable-2.3.x\\src\\github.com\\docker\\pinata\\win\\src\\Docker.ApiServices\\Mounting\\FileSharing.cs:line 47\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Docker.HttpApi.Controllers.FilesharingController.<ShareDirectory>d__2.MoveNext() in C:\\workspaces\\stable-2.3.x\\src\\github.com\\docker\\pinata\\win\\src\\Docker.HttpApi\\Controllers\\FilesharingController.cs:line 21\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__1`1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()"}.
Run Code Online (Sandbox Code Playgroud)
Ern*_*ert 10
我想到了。
-v 将本地目录中的位置挂载到正在运行的容器中。主机上位置中冒号的左侧和右侧是现在将链接在一起的容器中的位置。
问题在于,当您在 Windows 中运行 Docker 时,您需要专门授予 Docker 访问该位置的权限。要让 Docker 访问您计算机的驱动器,请右键单击任务栏中的 Docker 图标,然后单击“设置...”并查找“文件共享”部分。添加您要分享的位置,您就可以开始了!!!
就我而言,我在 Docker 文件共享部分添加了“C:\PycharmProjects\thera\docker-template\laravel-app”,我很高兴!
我运行后让它工作的命令是 -
docker run --rm -v C:\Users\ernest.vanduyne\PycharmProjects\tmp:/app composer install
Run Code Online (Sandbox Code Playgroud)
这将我本地驱动器上的“C:\Users\ernest.vanduyne\PycharmProjects\tmp”安装到容器中的“\app”。
归档时间: |
|
查看次数: |
2996 次 |
最近记录: |