Windows 無法訪問Docker 中的啟動的Nginx


最近在學習 Docker 的使用,在按照官方學習的過程中遇到一個問題,那就是在 Docker 中啟動的 Nginx 無法像官方文檔顯示的那樣 通過localhost:port  進行訪問。

例如 使用命令

docker run  -d -p 8081:80 --name webserver nginx

 

 

  按照官方文檔,在瀏覽器中輸入 http://localhost:8081 無法進行訪問。

 

 

 在查過資料后,得知我們在 Windows 上運行 Docker 時是相當於建一個一個 Linux 環境然后后在 Linux 環境下運行 Docker 。所以,訪問服務中使用的 localhost 指的是這個Linux環境的地址,而不是我們的Windows。

使用以下命令進入啟動的容器對應的虛擬環境中

docker exec -it containerid bash 

使用 

curl  http://localhost:80

這時可以看到 nginx 的默認返回頁面

 

 

 我們只要找到對應的虛擬 Linux 對應的 ip 地址,即可正確訪問到該頁面。而網上大部分都是使用 Docker toolbox ,直接使用以下命令進行查看。

docker-machine ip default

在 控制面板——網絡和共享中心——更改適配器設置 

找到 Hyper-V Virtual Ethernet Adapter 這個網卡,右鍵屬性——IPv4   即可查找到。

然后在瀏覽器使用這個ip 進行訪問,即可訪問成功。

PS:我在清理了所有容器並重新運行一個容器的時候,發現直接使用 localhost 也可以了。。不知道是中間設置了那個步驟導致的,暫時先記錄一下。

 

參考鏈接:

https://blog.csdn.net/qq_33591903/article/details/90751340


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM