Docker on Windows 10 “driver failed programming external connectivity on endpoint”
我正在尝试为项目使用
ERROR: for api Cannot start service api: driver failed programming external connectivity on endpoint dataexploration_api_1 (8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:9000:tcp:172.19.0.2:80: input/output error
Encountered errors while bringing up the project.
我想知道是否是港口? 我以前曾尝试使用8080端口。 该项目最初是在Mac上设置的,我已经从gitHub克隆了存储库。
我在Windows 10 Pro / Docker v17.06.1-ce-win24 / Docker-Compose v1.14.0上使用Windows Powershell x86在管理模式下收到了相同的错误消息。
解决方案是简单地重新启动Docker。
如果发生一次,那么重新启动Docker即可完成工作。就我而言,每次重新启动计算机时都会发生这种情况。
在这种情况下,请禁用快速启动,否则您可能会在每次计算机启动时重新启动Docker。此解决方案是从这里获得的
只是重新命名Docker并不能在Windows 10上解决我的问题。
就我而言,我通过以下确切步骤解决了该问题:
1)关闭" Docker Desktop"
2)运行以下命令:
1 2 | net stop com.docker.service net start com.docker.service |
3)再次启动" Docker Desktop"
希望这会帮助别人。
我也遇到了这个错误,如果您想知道错误发生的主要原因,是因为docker已经在运行类似的容器,要解决此问题(避免重新启动Docker),您必须:
1 | docker container ls |
您得到类似于以下内容:
1 2 | CONTAINER ID IMAGE COMMAND CREATED 1fa4ab2cf395 friendlyhello "python app.py" 28 seconds ago |
这是正在运行的容器的列表,带有容器ID(复制Ctrl + C)
现在,您必须结束该过程(并运行其他图像),然后运行此命令。
1 | docker container stop <CONTAINER_ID> |
就这样!现在您可以创建容器。
有关更多信息,请访问https://docs.docker.com/get-started/part2/
通常,当您尝试启动一个容器但该容器需要的端口被占用时,通常会发生此错误,通常是由同一个Docker占用的,这是由于最近一个错误的进程停止所致。
对我来说解决方案是:

1 | TASKKILL /PID 9816 /F |
重新启动docker。
问候。
我知道已经有很多答案了,但是没有一个为我解决问题。相反,我通过将docker重置为出厂默认值来摆脱此错误消息:
就我而言,问题是docker容器(Nginx)使用80端口,而IIS使用相同的端口。在IIS中设置另一个端口可解决问题
在大多数情况下,您应该考虑的第一种情况是正在运行并使用该端口的旧服务。
就我而言,由于我更改了映像名称,因此在使用docker-compose停止(然后启动)时,它不会停止旧容器(服务),导致无法启动新容器。
对于许多存在相同问题的Windows用户,我建议也重新启动计算机,因为大多数情况下(至少对我而言),仅重新启动Docker不起作用。因此,我建议您遵循以下步骤:
然后以管理员身份启动PowerShell并运行以下命令:
之后,重新启动您的Docker。
完成这些步骤后,您将可以毫无问题地运行。
希望对您有所帮助。
-
解决此问题的最简单方法是重启docker。但是在某些情况下,即使端口中没有正在运行的容器,它也可能无法工作。您可以使用
docker ps 命令检查正在运行的容器,并可以查看所有未清除但退出的容器,然后再使用< x2>命令。
假设有一个容器的容器ID为
-
如果重启不起作用,您可以尝试更改docker-compose.yml文件中的服务端口,然后根据apache端口必须更改v-host的端口(如果有的话)。问题。
例如:
1 2 3 4 5 6 7 8 9 10 11 12 | build: context: ./apache dockerfile: Dockerfile working_dir: /var/www/ volumes: - .:/var/www networks: - app-network ports: - 8082:80 depends_on: - mysql_db |
应该变成
1 2 3 4 5 6 7 8 9 10 11 12 13 | apache_server: build: context: ./apache dockerfile: Dockerfile working_dir: /var/www/ volumes: - .:/var/www networks: - app-network ports: - 8083:80 depends_on: - mysql_db |
而且特定的虚拟主机也必须更改,
例(根据以上情况):
1 2 3 4 5 6 | <VirtualHost *:80> ProxyPreserveHost On ServerAlias phpadocker.lk ProxyPass / http://localhost:8083/ ProxyPassReverse / http://localhost:8083/ </VirtualHost> |
这将帮助您解决上述问题。
答案有点晚了,但我会留在这里,这可能会对其他人有所帮助
在Mac和docker大量重启后的Mac mojave上
我必须