来自守护进程的错误响应:驱动程序未能在端点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 features
,docker-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] 来自守护进程的错误响应