gpt4 book ai didi

Docker 窗口端口不可用 :

转载 作者:行者123 更新时间:2023-12-05 03:54:18 25 4
gpt4 key购买 nike

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="错误等待容器:上下文已取消"

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

请帮忙。谢谢。

最佳答案

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

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

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

docker: Error response from daemon: Ports are not available

如果您尝试将它映射到某个其他端口(在您的机器上是空闲的),那么它将按预期工作。

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

阅读this有关 Docker 容器网络的更多详细信息。

关于Docker 窗口端口不可用 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61107702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com