當前位置:
首頁 > 知識 > 外部世界如何訪問容器?-每天5分鐘玩轉 Docker 容器技術(37)

外部世界如何訪問容器?-每天5分鐘玩轉 Docker 容器技術(37)

上節我們學習了容器如何訪問外部網路,今天討論另一個方向:外部網路如何訪問到容器?

答案是:埠映射

docker 可將容器對外提供服務的埠映射到 host 的某個埠,外網通過該埠訪問容器。容器啟動時通過-p參數映射埠:

外部世界如何訪問容器?-每天5分鐘玩轉 Docker 容器技術(37)

容器啟動後,可通過 docker ps或者docker port查看到 host 映射的埠。在上面的例子中,httpd 容器的 80 埠被映射到 host 32773 上,這樣就可以通過:<32773>訪問容器的 web 服務了。

外部世界如何訪問容器?-每天5分鐘玩轉 Docker 容器技術(37)

除了映射動態埠,也可在 -p中指定映射到 host 某個特定埠,例如可將 80 埠映射到 host 的 8080 埠:

外部世界如何訪問容器?-每天5分鐘玩轉 Docker 容器技術(37)

每一個映射的埠,host 都會啟動一個 docker-proxy進程來處理訪問容器的流量:

以 0.0.0.0:32773->80/tcp 為例分析整個過程:

外部世界如何訪問容器?-每天5分鐘玩轉 Docker 容器技術(37)

  1. docker-proxy 監聽 host 的 32773 埠。

  2. 當 curl 訪問 10.0.2.15:32773 時,docker-proxy 轉發給容器 172.17.0.2:80。

  3. httpd 容器響應請求並返回結果。

本章小結

在這一章我們首先學習了 Docker 的三種網路:none, host 和 bridge 並討論了它們的不同使用場景;然後我們實踐了創建自定義網路;最後詳細討論了如何實現容器與容器之間,容器與外部網路之間的通信。

本章重點關注的是單個主機內的容器網路,對於跨主機網路通信將在後面章節詳細討論。下一節開始學習 Docker 存儲。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

kubespray安裝kubernetes完成後kubectl客戶端配置
「Java」jdk1.8集合類特性綜述及橫向比較
Java基礎----jdk1.8 反射實驗
ASP.NET Core配置環境變數和啟動設置
10.動態規劃(3)——0-1背包問題

TAG:科技優家 |

您可能感興趣

用 ConfigMap 管理配置-每天5分鐘玩轉 Docker 容器技術
Docker 容器十誡
在 Scale Up 中使用 Health Check-每天5分鐘玩轉 Docker 容器技術
岌岌可危:22000多個容器編排系統暴露在網上,如 Kubernetes、Docker Swarm……
Python 容器使用的 5 個技巧和 2 個誤區
Docker 容器連接
Docker 容器使用
re:Invent 2018:AWS Marketplace新增大量應用容器和IoT工具
GopherChina 2018 區塊鏈+容器+Go底層實現
在Linux下使用Docker容器化技術搭建Web伺服器運行環境
Nginx 容器教程
用 Python 和 Conu 測試容器
攻擊者是如何從Play-with-Docker容器逃逸到Docker主機的(下)
Spring與SpringMVC的容器關係分析
使用 Docker 容器化 Django Web 應用
windows7上使用docker容器
容器化分散式日誌組件ExceptionLess的Angular前端UI
Dockly:從終端管理 Docker 容器
後Kubernetes時代,2019的容器技術生態會發生些什麼?
IBM私有容器更新 支持Kubernetes 單集群執行1000個節點