繁体   English   中英

Docker windows 端口不可用:

[英]Docker windows Ports are not available:

Docker 的新手。 我在 Win 10 机器上运行 Visual Studio 2019 社区。 安装 Docker 桌面并创建两个解决方案(service1 和 service2)。 我正在尝试在它们自己的容器上运行这两个解决方案。

我能够使用以下方法构建和运行 service1:

docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice

提问3000:80 是什么? 80是一个端口吗? 因为我能够使用http://localhost:3000/api/product/1从浏览器运行我的 api。

接下来,我试图通过以下方式在它自己的容器上运行 service2:

docker run -it --rm -p 2000:80 --name myanotherservicecontainer myanotherservice

由于端口是 2000,我想它应该可以工作,但是我收到以下错误:

docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:2000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

time="2020-04-08T14:22:41-04:00" level=error msg="error waiting for container: context cancelled"

那是因为我有:80 与 service1 相同吗? 解决办法是什么? 我在命令提示符下以管理员模式运行命令。

请帮忙。 谢谢你。

docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice

第一个问题的答案是YES , 80 是一个端口。 基本上-p 3000:80所做的是将容器中的 TCP 端口 80 映射到 Docker 主机上的端口 3000。

您收到的服务错误是因为端口 2000 被其他进程占用。 错误消息中也清楚地提到了这一点。

docker: Error response from daemon: Ports are not available

如果您尝试将 map 连接到其他端口(在您的机器上是免费的),那么它将按预期工作。

也许尝试-p 1111:80-p 1234:80

阅读本文以了解有关 docker 容器网络的更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM