2016-11-18 183 views
7

我知道有很多关于在Windows上运行Docker的问题,但是这个问题是关于在Windows上运行全新的Docker for Windows。
在我的情况下,我正在使用Windows 10 Pro 64位。根据网站这个版本应该被支持。
我一直在下面的教程,我发现在这里: https://prakhar.me/docker-curriculum/
我也试过以下课程的官方指南:使用两种https://docs.docker.com/docker-for-windows/运行Docker for Windows,暴露端口时出错

在这两个教程试图分配一个端口时,我得到同样的错误消息-P参数或者试图指定端口-p 8080:5000时:

在官方指导我跑docker run -d -p 80:80 --name webserver nginx并获得:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint webserver (f9946544e4c6ad2dd9cb8cbccd251e4d48254e86562bd8e6da75c3bd42c7e45a): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:80:tcp:172.17.0.2:80: input/output error.

继非官方的指导我运行docker run -p 8888:5000 prakhar1989/catnip并获得基本相同的错误:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint focused_swartz (48a0c005779c6e89bf525ead2ecff44a7f092495cd22ef7d19973002963cb232): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:8888:tcp:172.17.0.2:5000: input/output error.

如果我不尝试分配一个端口容器运行,但我不知道如何访问它。

泊坞窗版本我运行:

  • 泊坞版本1.12.3,构建6b644ec`
  • 泊坞窗,撰写版本1.8.1,建立004ddae`
  • 泊坞窗,machine.exe 0.8版.2,build e18a919`

任何帮助将不胜感激。谢谢。

+0

运行'docker ps'的结果是什么? – R0MANARMY

+0

'docker ps'给了我一个空的列表,'docker ps -a'将显示两个尝试启动容器的尝试。 –

+0

正常情况下,如果您已经在该端口上运行了某些内容,则会发生错误,但如果您使用'-P'尝试了它,它应该选择一个随机的高端口并工作。 – R0MANARMY

回答

11

这是一个新的转折点。

最新的Windows 10更新(Fall Creators Update,2017)有一个新的“功能”。它会自动启动上次关机时正在运行的任何应用程序。

这重构了Docker for Windows状态不佳。这使得这些端口似乎被其他东西所使用 - 这是它本身的幽灵。这解释了为什么即使我停止/启动我的容器,甚至重新启动,这些端口仍然在使用中!

这种情况下的解决方案是简单地重新启动Docker守护进程。

为防止在下次关机后出现此情况,请勿使用关机按钮。请改为输入此代码:

shutdown /s /t 0 

这会绕过新功能。

见杰森[MS]答案在这个线程:

https://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_perf-insiderplat_pc/programs-autostart-after-boot-in-windows-10-fall/09dd8d3e-7b36-45d1-9181-6587dd5d53ab

这里有一个家伙的解决方法(从这个线程结束 - 还没有尝试过我自己):

http://www.icttoolbox.nl/info/stop-windows-10-creator-fall-reopening-programs-reboot/

+1

重启docker daemon帮助。谢谢@ biscuit314 – neaGaze

相关问题