首页 文章

运行Docker for Windows,暴露端口时出错

提问于
浏览
23

我知道有很多关于在Windows上运行Docker的问题,但是这个问题是关于在Windows上运行全新的Docker for Windows .
在我的情况下,我使用的是Windows 10 Pro 64位 . 根据网站,该版本应该得到支持 .
我一直在关注我在这里找到的教程:https://prakhar.me/docker-curriculum/
我当然也尝试遵循官方指南:https://docs.docker.com/docker-for-windows/

在这两个教程中,当尝试使用 -P 参数分配端口或尝试指定端口_493075时,我收到相同的错误消息:

在官方指南中,我运行 docker run -d -p 80:80 --name webserver nginx 并得到:

C:\ Program Files文件\泊坞窗\泊坞窗\资源\ BIN \ docker.exe:从后台程序错误反应:驱动程序无法在 endpoints Web服务器(f9946544e4c6ad2dd9cb8cbccd251e4d48254e86562bd8e6da75c3bd42c7e45a)编程外部连接:错误启动用户级代理上:mkdir /port/tcp:0.0.0.0 :80:tcp:172.17.0.2:80:输入/输出错误 .

按照非官方指南我运行 docker run -p 8888:5000 prakhar1989/catnip 并得到基本相同的错误:

C:\ Program Files文件\泊坞窗\泊坞窗\资源\ BIN \ docker.exe:从后台程序错误反应:驱动程序无法在 endpoints focused_swartz编程外部连接(48a0c005779c6e89bf525ead2ecff44a7f092495cd22ef7d19973002963cb232):错误启动用户级代理上:mkdir /port/tcp:0.0.0.0 :8888:tcp:172.17.0.2:5000:输入/输出错误 .

如果我不尝试分配容器将运行的端口,但后来我不知道如何访问它 .

我正在运行的docker版本:

  • Docker版本1.12.3,build 6b644ec`

  • docker-compose版本1.8.1,build 004ddae`

  • docker-machine.exe版本0.8.2,构建e18a919`

任何帮助将非常感激 . 谢谢 .

5 回答

  • 36

    重新启动Docker守护进程暂时解决了这个问题,但为了摆脱它最终我不得不 disable Windows 10 fast startup ,这是@ biscuit314描述的功能 .

    要禁用Windows 10快速启动,请转到“控制面板”>“电源选项”>“选择电源按钮的功能”>“更改当前不可用的设置”>“取消选中”“启用快速启动(推荐)”和“保存更改”

    Disable fast startup

  • 7

    仅当您知道是否要停止所有容器时才使用 docker stop $(docker ps -a -q) ....如果是,请运行 docker rm $(docker ps -a -q) 删除容器....

    然后停止docker守护进程 - systemctl stop docker 然后启动docker守护进程 - systemctl start docker

    还要验证docker守护程序是否已启动 - service docker status

    按照上述所有步骤后你应该没事.....

  • 5

    这是由端口编号冲突引起的:github问题在这里https://github.com/docker/compose/issues/3277

    基本上端口正在使用中!重置工作的原因是因为它擦除了其他映射 .

  • 3

    这是一个新的转折点 .

    最新的Windows 10更新(Fall Creators Update,2017)具有新的“功能” . 它会自动启动上次关闭时运行的所有应用程序 .

    这会重建Docker for Windows状态不佳 . 这使得看起来那些端口被其他东西使用 - 它本身就是鬼魂 . 这解释了为什么即使我停止/启动我的容器甚至重启,这些端口仍然在使用!

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

    要在下次关闭后防止这种情况,请不要使用关机按钮 . 改为输入:

    shutdown /s /t 0
    

    这绕过了新功能 .

    在这个帖子中查看Jason [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/

  • 0

    1)然后停止所有正在运行的容器 docker stop $(docker ps -a -q)

    2)停止机器上的Docker并重新启动它 .

    然后运行所需的命令 . 这将解决问题 .

相关问题