来自守护进程的错误响应:驱动程序未能在端点modem_aryabhata 上编程外部连接

Posted

技术标签:

【中文标题】来自守护进程的错误响应:驱动程序未能在端点modem_aryabhata 上编程外部连接【英文标题】:Error response from daemon: driver failed programming external connectivity on endpoint modest_aryabhata 【发布时间】:2018-09-16 12:21:48 【问题描述】:

我正在通过this tutorial

制作 docker 镜像:docker build -t myapp_back .

然后想运行容器:docker run -p 3000:3000 -d myapp_back

这是一个简单的节点/快速应用程序

但我收到一个错误:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: 错误 来自守护进程的响应:驱动程序编程外部连接失败 在端点上 wizardly_wescoff (a7c53e0d168f915f900e3d67ec72805c2f8e4f5e595f6ae3c7fed8e097886a8b): 启动用户态代理时出错:mkdir /port/tcp:0.0.0.0:3000:tcp:172.17.0.2:3000:输入/输出错误。

怎么了?

我的码头文件:

FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ['npm', 'start']

并从 package.json 开始:

"start": "nodemon src/app.js --exec babel-node"

【问题讨论】:

【参考方案1】:

要解决 Windows 中的以下错误:只需重新启动 Docker(从托盘菜单或在设置/重置中选择“重新启动 Docker...”选项)

Cannot start service YOUR_SERVICE: driver failed programming external connectivity on endpoint ...

【讨论】:

【参考方案2】:

看起来这是 docker 的一个已知问题:https://github.com/docker/for-win/issues/573

试试:

    在设置/守护程序菜单中禁用“实验性功能” 重新启动泊坞窗 停止所有容器。

要停止所有容器,请运行:docker ps -a -q | ForEach docker stop $_

编辑:使用 ShellScript 代码停止所有容器

for a in `docker ps -a -q`
do
  echo "Stopping container - $a"
  docker stop $a
done

【讨论】:

这对我来说是正确的解决方案。虽然我的 dockerized 配置在 OSX 上运行良好,但它在 Windows 上给了我类似的错误。在我的例子中,我将边缘通道版本 19.03.0-rc2 用于具有实验功能的 Windows * 我关闭了端口映射(在命令行中,然后在 docker-compose.yml 中)并且它在没有暴露端口的情况下工作。 * 接下来,我关闭了experimental featuresdocker-compose up 正常工作【参考方案3】:

刚刚重启了我的电脑,现在可以正常使用了..

【讨论】:

【参考方案4】:

通过将 docker 重置为出厂默认设置,我可以让 docker 在我的 Windows 10 电脑上运行。重新启动docker,重新启动我的机器不起作用。

【讨论】:

【参考方案5】:

重新启动计算机并不是真正的修复方法,只是一种解决方法,需要经常这样做。

问题与默认的 Windows 10 关机行为有关。

实际的修复可以通过禁用windows快速启动设置来实现:

控制面板 -> 电源选项 -> 选择电源按钮的功能 -> 更改当前不可用的设置 -> 切换开启快速启动

【讨论】:

【参考方案6】:

在 Mac Mojave 上,运行以下命令以查找哪些进程正在使用该端口。

sudo lsof -i @localhost:<port_no>

在我的情况下,我正在检查端口 8080,所以我运行

sudo lsof -i @localhost:8080

我发现 http-alt 正在端口 8080 上运行,使用上述命令获取进程 ID 后,您可以通过

终止进程
sudo kill -9 <process_id>

但是,在我的例子中,四个应用程序 ArtemisSe, Mail, Google and Slack 在端口 8080 上使用 http-alt。因为它们看起来很重要,所以我更改了端口并在 8888 而不是 8080 上运行容器。即

docker run -it --rm -p 8888:8080 <imageid or image name>

【讨论】:

容器的 docker run 失败,显示端点错误。使用 lsof 我们可以看到 docker-proxy 仍然在 ip:port 上杀死 docker-proxy 没有帮助。 docker restart 解决了它。结论:在 docker stop/docker rm 时间出了点问题,docker-proxy 和 docker 端点中的其他东西被遗忘了。我的错误:``` docker:来自守护进程的错误响应:驱动程序在端点容器名称(1d92a2ef61e35f97aa8d9352ff77a0d378bb73c4b0b8c46a68fdb34812ec7b17)上编程外部连接失败:绑定 10.247.184.31:50000 失败:端口已分配。 ``` 在 centos 上。 docker-proxy 是 docker swarm 的一部分。 在我的情况下,问题是应用程序 adb android 监听 5037。重新启动对此不起作用。 Tks面【参考方案7】:

我在linux下运行。如果我使用 sudo 命令以 root 身份运行 docker,它可以正常工作。

【讨论】:

【参考方案8】:

只需重新启动 docker,右键单击其图标然后重新启动。解决了我的问题

【讨论】:

【参考方案9】:

在我的例子中,php Container 中出现了同样的错误。我解决了更改公共端口的问题。

重启我的 Windows 10 后这个命令抛出错误:

docker run -d -p 8080:80 --name php_apache php_app

解决方案:

docker run -d -p 8081:80 --name php_apache php_app

【讨论】:

这不是一个解决方案,而是一个使它工作的解决方法,不是吗?

以上是关于来自守护进程的错误响应:驱动程序未能在端点modem_aryabhata 上编程外部连接的主要内容,如果未能解决你的问题,请参考以下文章

docker:来自守护进程的错误响应:无法选择设备驱动程序“”具有功能:[[gpu]]

来自守护进程的 Docker 错误响应:“冲突……容器已在使用”

Docker 抛出 FATA [0000] 来自守护进程的错误响应

Gitlab管道失败:错误:准备失败:来自守护进程的错误响应:toomanyrequests

docker:来自守护进程的错误响应:grpc:连接不可用

Docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:296: