docker-proxy


例子:docker run -name zxy-nginx -itd -p 8080:80 mynginx:v1 /bin/bash

分析:在docker默認配置時刻,docker端口暴露是通過docker-proxy加適當的iptables規則實現的。

 

 如圖,

docker-proxy 通過-host-ip指定了docker-proxy在主機上監聽的網絡接口,通過-host-port指定了監聽的端口號;通過-container-ip和-container-port 指定了docker-proxy鏈接到容器內部的容器ip和端口號。也就是說,在做完端口映射后,docker-proxy負責去監聽主機的端口號,並做好容器內部的連接。在上例中docker-proxy監聽0.0.0.0:514,那么當主機任何網絡接口上有netfliter模塊處理后 input鏈到達的目標端口為8080的tcp數據包時刻,docker-proxy會接受這個鏈接(accept,記為input鏈接),並主動在連接container-ip+container-port建立一個tcp鏈接(記為output鏈接)。當此新建的與容器的鏈接建立后,docker-proxy會將所有來自input鏈接的包 發送給output鏈接。
 
附圖,docker-proxy不起作用的情況,即外部訪問

 

參考連接:https://www.jianshu.com/p/91002d316185

 


免責聲明!

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



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