Docker windows端口不可用:

Docker windows端口不可用:,docker,Docker,新来的码头工人。我正在Win 10机器上运行Visual Studio 2019社区。安装Docker desktop并创建了两个解决方案(service1和service2)。我试图在它们自己的容器上运行这两个解决方案 我能够使用以下工具构建和运行service1: docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice 问题3000:80是多少?80是一个港口吗?因为我可以从浏览器运行api

新来的码头工人。我正在Win 10机器上运行Visual Studio 2019社区。安装Docker desktop并创建了两个解决方案(service1和service2)。我试图在它们自己的容器上运行这两个解决方案

我能够使用以下工具构建和运行service1:

docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice
问题3000:80是多少?80是一个港口吗?因为我可以从浏览器运行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和服务1一样吗?解决办法是什么?我正在命令提示符下以管理模式运行命令

请帮忙。多谢各位

docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice
第一个问题的答案是,80是一个端口。 基本上,
-p3000:80
将容器中的TCP端口80映射到Docker主机上的端口3000

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

docker: Error response from daemon: Ports are not available
如果您尝试将它映射到其他端口(在您的机器上是免费的),那么它将按预期工作

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


有关docker容器网络的更多详细信息,请阅读。

问题3000:80是什么?
谢谢,我尝试了netstat-an | find“2000”,但没有人使用它。我还试了1111和1234。我认为我们必须使用docker build命令进行构建,然后执行run命令。