外部世界如何訪問容器?-每天5分鐘玩轉 Docker 容器技術(37)
上節我們學習了容器如何訪問外部網路,今天討論另一個方向:外部網路如何訪問到容器?
答案是:埠映射。
docker 可將容器對外提供服務的埠映射到 host 的某個埠,外網通過該埠訪問容器。容器啟動時通過-p
參數映射埠:
容器啟動後,可通過 docker ps
或者docker port
查看到 host 映射的埠。在上面的例子中,httpd 容器的 80 埠被映射到 host 32773 上,這樣就可以通過
訪問容器的 web 服務了。
除了映射動態埠,也可在 -p
中指定映射到 host 某個特定埠,例如可將 80 埠映射到 host 的 8080 埠:
每一個映射的埠,host 都會啟動一個 docker-proxy
進程來處理訪問容器的流量:
以 0.0.0.0:32773->80/tcp 為例分析整個過程:
docker-proxy 監聽 host 的 32773 埠。
當 curl 訪問 10.0.2.15:32773 時,docker-proxy 轉發給容器 172.17.0.2:80。
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個節點