[英]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.