我在 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/