docker-compose 端口映射给出无法创建端点 hnsCall 在 Win32 中失败 : The specified port already exists

标签 docker-compose

我在 Visual Studio 中启动了一个新的 (.net core 3.0) 项目,并支持 Docker (Windows)

我添加了 Docker 支持(右键单击项目添加->Docker 支持)并以相同的方式添加了 Docker compose 支持。

如果我只是单击 Docker Compose 的“播放按钮”,项目就会启动,一切正常。

但是当我从解决方案文件夹运行 docker-compose up 时,我得到了

Cannot start service testproj30: failed to create endpoint testproj30_testproj30_1 on network nat: hnsCall failed in Win32: The specified port already exists.

(我已经关闭了我的 VS 解决方案)。如果我删除 docker-compose.override.yaml 中的端口映射,我不会收到此错误消息。我没有重启 docker servce、hni 服务等最常见的技巧。没有任何帮助。

我不想依赖项目文件中的所有 VS-voodoo,天知道还涉及哪些其他文件。

我可以运行docker run -p 8080:80 443:443,没有任何端口问题

最佳答案

我通过删除一些终止的容器然后修剪网络解决了类似的问题。

列出终止的容器:

docker ps -a

删除它们(Cygwin 语法):

docker rm $(docker ps -aq)

您将收到运行容器的错误消息。

清理你的网络:

docker network prune

对于我自己来说,主要原因是 Docker 查杀进程跳过了我的应用程序的端口释放机制。

关于docker-compose 端口映射给出无法创建端点 hnsCall 在 Win32 中失败 : The specified port already exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59159108/

相关文章:

docker - 如何在 Docker-Compose 中一起使用主机网络和任何其他用户定义的网络?

elasticsearch - Docker-compose不读取环境变量以将日志写入Elasticsearch

elasticsearch - Spark 应用程序无法写入在 docker 中运行的 elasticsearch 集群

mongodb - 尝试从 Windows robo3t 连接到 vanilla mongodb docker 容器时出现操作码错误

docker - 如何在阻塞端口的同时仅允许通过特定 URL 访问 MERN 项目中的 Docker 容器?

docker - 使用 SSL 的 Nginx 子域重定向不起作用

mysql - 无法将 spring-boot 2 服务连接到不同容器中的 mysql

Dockerfile 入口点无法切换用户

Docker 镜像文件夹权限未更新

docker - 禁止docker使用特定网络