在 Windows 10 上连接容器时遇到 “driver failed programming external connectivity” 错误

77次阅读
没有评论

问题描述

在 Windows 10 上尝试与容器进行交互式连接或登录时,遇到了以下错误信息:

docker run --rm -p 8080:80 laravel-docker Error response from daemon: driver failed programming external connectivity on endpoint wizardly_diffie (0c95bf862e583179e0a988eae0b07606e41184548c494ddd523df95c1430422f): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:8080:tcp:172.17.0.8:80: input/output error.

用户还提供了自己的 Docker 版本信息:

$ docker --version
Docker version 18.09.0, build 4d60db4

解决方案

在执行以下操作之前,请确保你已备份重要数据,并仔细阅读并理解每个步骤。

解决方案1:重启 Docker

有时,在操作系统重新启动后,Docker 可能会进入类似的状态。尝试重启 Docker 服务,以下是操作步骤:
1. 打开命令提示符(Command Prompt)或 PowerShell。
2. 运行以下命令来重启 Docker 服务:
shell
net stop docker
net start docker

3. 尝试再次运行容器并连接。

解决方案2:参考 GitHub 讨论

有一个相关的 GitHub 讨论,提到在一些情况下将 Docker 部署为 Swarm 模式可以避免此问题的再次出现。此外,还提供了几种解决底层操作系统问题的方法,具体取决于是否适用于你。你可以在以下链接中找到讨论详情:
https://github.com/docker/for-win/issues/1038

请注意,参考 GitHub 讨论时,确保仔细阅读并理解每个解决方法,并谨慎操作。

解决方案3:更新 Docker 版本

你的 Docker 版本可能已经比较旧,考虑升级到最新版本,以获取更好的稳定性和 bug 修复。你可以从 Docker 官方网站下载最新版本的 Docker。

总结

在 Windows 10 上连接 Docker 容器时遇到 “driver failed programming external connectivity” 错误可能是由多种原因引起的。可以尝试重启 Docker 服务、参考相关的 GitHub 讨论,或者考虑升级 Docker 到最新版本来解决此问题。在执行任何操作之前,请确保你已经备份了重要的数据,并且理解了每个解决方案的具体步骤和潜在影响。

请注意,由于操作系统和软件版本可能会引起差异,建议在执行任何更改之前进行充分的测试,并确保你了解所采取操作的影响。

正文完