Docker windows端口不可用:
新来的码头工人。我正在Win 10机器上运行Visual Studio 2019社区。安装Docker desktop并创建了两个解决方案(service1和service2)。我试图在它们自己的容器上运行这两个解决方案 我能够使用以下工具构建和运行service1: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
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命令。