簡體   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