Docker網絡實現

眾所周知,docker網絡是它薄弱的地方!

Docker的網絡實現:

利用linux的網絡命名空間和虛擬網絡設備(特別是veth pair)

1、基本原理
實現網絡通信:機器需要至少一個網絡接口:物理的或者虛擬的

不同子網通信:額外路由機制

docker:默認是虛擬的接口

虛擬接口速率:轉發效率極高

虛擬接口速率極高的原理:linux通過在內核中進行數據復制來實現虛擬接口之間的數據轉發。
通俗的將:發送接口的發送緩存的數據直接復制到接收接口的接收緩存,不用外部設備轉換。

2、網路創建
docker創建一個容器會做什么(網絡相關)
1、創建一對虛擬接口,分別放到宿主主機和新容器的 命名空間里

2、宿主主機一端的虛擬接口會鏈接到默認的docker0網橋或著你指定的網橋上,
而且有一個以veth開頭的唯一名字

3、容器里的虛擬接口放到容器里,修改名字作為eth0

4、從網橋可用地址段中獲取一個空閑地址分配給容器的eth0,網關則是docker0的ip

然后就可以訪問外部和連接其它容器了!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,543評論 0 120
  • 轉自:http://ju.outofmemory.cn/entry/255894 概述自從docker容器出現以來...
    dleyanlin閱讀 1,521評論 0 7
  • 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統的并且容器的端口非本地主機是訪問不到的。此外,除了...
    R_X閱讀 1,797評論 0 7
  • 概述 自從docker容器出現以來,容器的網絡通信就一直是大家關注的焦點,也是生產環境的迫切需求。而容器的網絡通信...
    糙老爺們兒吃什么櫻桃閱讀 3,650評論 1 5
  • Now the time downs the end of a day, And all myself is su...
    Enchante閱讀 495評論 1 2