我正在经历this tutorial
使用docker build -t myapp_back .
然后想要运行带有docker run -p 3000:3000 -d myapp_back
它是simlpe node / express app
但是我收到了一个错误:
C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe:错误 来自守护程序的响应:驱动程序无法编程外部连接 在端点wizardly_wescoff上 (a7c53e0d168f915f900e3d67ec72805c2f8e4f5e595f6ae3c7fed8e097886a8b): 启动userland代理时出错:mkdir /port/tcp:0.0.0.0:3000:tcp:172.17.0.2:3000:输入/输出错误。
怎么了?
我的dockerfile:
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"
答案 0 :(得分:16)
要在Windows中解决以下错误:只需重新启动Docker(从托盘菜单或选择设置/重置中的'重新启动Docker ...'选项)
Cannot start service YOUR_SERVICE: driver failed programming external connectivity on endpoint ...
答案 1 :(得分:5)
看起来这是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
答案 2 :(得分:2)
刚重新启动我的电脑,现在可以正常运行..
答案 3 :(得分:1)
我正在linux下运行。如果我使用sudo命令以root用户身份运行docker,那么它将正常工作。
答案 4 :(得分:1)
重新启动计算机不是实际的解决方法,而只是需要经常执行的一种解决方法。
该问题与Windows 10的默认关机行为有关。
可以通过禁用Windows快速启动设置来实现实际的修复:
控制面板->电源选项->选择电源按钮的功能->更改当前不可用的设置->切换打开快速启动
答案 5 :(得分:1)
在Mac Mojave上,运行以下命令以查找正在使用该端口的进程。
DIM BuildExecuteString
BuildExecuteString = "cmd /c call ""C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat"" & devenv ""Test.sln"" /Rebuild ""Release|Any CPU"" /project ""Test"""
Set objShell = CreateObject("Wscript.Shell")
Call objShell.Run(BuildExecuteString, 1, True)
就我而言,我正在检查端口8080,所以我运行了
sudo lsof -i @localhost:<port_no>
我发现http-alt运行在端口8080上,使用上述命令获取进程ID后,您可以通过
终止进程sudo lsof -i @localhost:8080
但是,在我的情况下,四个应用程序sudo kill -9 <process_id>
在端口8080上使用http-alt。由于它们看起来很重要,因此我更改了端口,并在8888而不是8080上运行了容器。
ArtemisSe, Mail, Google and Slack
答案 6 :(得分:0)
通过将docker重置为出厂默认值,我可以使docker在我的Windows 10 pc上工作。重新启动docker,重新启动我的机器不起作用。
答案 7 :(得分:0)
只需重新启动docker,右键单击其图标,然后重新启动即可。解决了我的问题
答案 8 :(得分:0)
就我而言,PHP容器中出现相同的错误。我解决了更改公共端口并工作的问题。
重新启动Windows 10后,此命令将引发错误:
docker run -d -p 8080:80 --name php_apache php_app
解决方案:
docker run -d -p 8081:80 --name php_apache php_app