日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Docker核心技术之网络管理

發布時間:2023/11/28 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker核心技术之网络管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Docker 網絡管理簡介

為什么需要Docker網絡管理

容器的網絡默認與宿主機、與其他容器都是相互隔離。

容器中可以運行一些網絡應用(如nginx、web應用、數據庫等),如果要讓外部也可以訪問這些容器內運行的網絡應用,那么就需要配置網絡來實現。

有可能有的需求下,容器不想讓它的網絡與宿主機、與其他容器隔離。

有可能有的需求下,容器根本不需要網絡。

有可能有的需求下,容器需要更高的定制化網絡(如定制特殊的集群網絡、定制容器間的局域網)。

有可能有的需求下, 容器數量特別多,體量很大的一系列容器的網絡管理如何 ……

因此容器的網絡管理是非常重要的

Docker中有哪些網絡驅動模式

bridge network 模式(網橋):默認的網絡模式。類似虛擬機的nat模式

host network 模式(主機):容器與宿主機之間的網絡無隔離,即容器直接使用宿主機網絡

None network 模式:容器禁用所有網絡。

Overlay network 模式(覆蓋網絡): 利用VXLAN實現的bridge模式

Macvlan network 模式:容器具備Mac地址,使其顯示為網絡上的物理設備

Docker網絡管理命令

查看網絡 – docker network ls

作用: ?? ?查看已經建立的網絡對象

命令格式: ?? ?docker network ls [OPTIONS]

命令參數(OPTIONS): ?? ?-f, --filter filter ? ?? ??? ?過濾條件(如 'driver=bridge’) ?? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --format string ? ?? ?格式化打印結果 ?? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --no-trunc ? ? ? ??? ?不縮略顯示 ?? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -q, --quiet ? ? ? ? ??? ? ?? ?只顯示網絡對象的ID

注意: ?? ?默認情況下,docker安裝完成后,會自動創建bridge、host、none三種網絡驅動??

命令演示:

?創建網絡 – docker network create

作用: ?? ?創建新的網絡對象

命令格式: ?? ?docker network create [OPTIONS] NETWORK

命令參數(OPTIONS): ?? ?-d, --driver string ? ? ? ??? ??? ?指定網絡的驅動(默認 "bridge") ?? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --subnet strings ? ? ? ?? ??? ?指定子網網段(如192.168.0.0/16、172.88.0.0/24) ?? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --ip-range strings ? ? ?? ??? ?執行容器的IP范圍,格式同subnet參數 ?? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --gateway strings ? ? ??? ??? ?子網的IPv4 or IPv6網關,如(192.168.0.1)

注意: ?? ?host和none模式網絡只能存在一個 ?? ?docker自帶的overlay 網絡創建依賴于docker swarm(集群負載均衡)服務 ?? ?192.168.0.0/16 等于 192.168.0.0~192.168.255.255 ? ?192.168.8.0/24 ?? ?172.88.0.0/24 等于 172.88.0.0~172.88.0.255

命令演示:

網絡刪除 – docker network rm

作用: ?? ?刪除一個或多個網絡

命令格式: ?? ?docker network rm NETWORK [NETWORK...]

命令參數(OPTIONS): ?? ?無

查看網絡詳細信息 – docker network inspect

作用: ?? ?查看一個或多個網絡的詳細信息

命令格式: ?? ?docker network inspect [OPTIONS] NETWORK [NETWORK...] ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?或者 docker inspect [OPTIONS] NETWORK [NETWORK...]

命令參數(OPTIONS): ?? ?-f, --format string ? ?? ?根據format輸出結果

使用網絡 – docker run --network

作用: ?? ?為啟動的容器指定網絡模式

命令格式: ?? ?docker run/create --network NETWORK

命令參數(OPTIONS): ?? ?無

注意: ?? ?默認情況下,docker創建或啟動容器時,會默認使用名為bridge的網絡

網絡連接與斷開 – docker network connect/disconnect

作用: ?? ?將指定容器與指定網絡進行連接或者斷開連接

命令格式: ?? ?docker network connect [OPTIONS] NETWORK CONTAINER

? ? ? ? ? ? ? ? ? ? ? ?docker network disconnect [OPTIONS] NETWORK CONTAINER

命令參數(OPTIONS): ?? ?-f, --force ? ?? ??? ?強制斷開連接(用于disconnect)

二、Docker網絡模式簡介

bridge 網絡模式(一)

特點: 宿主機上需要單獨的bridge網卡,如默認docker默認創建的docker0。

容器之間、容器與主機之間的網絡通信,是借助為每一個容器生成的一對veth pair虛擬網絡設備對,進行通信的。一個在容器上,另一個在宿主機上。

每創建一個基于bridge網絡的容器,都會自動在宿主機上創建一個veth**虛擬網絡設備。

外部無法直接訪問容器。需要建立端口映射才能訪問。

容器借由veth虛擬設備通過如docker0這種bridge網絡設備進行通信。

每一容器具有單獨的IP

bridge 網絡模式(二) – 端口映射

作用: ?? ?啟動的容器時,為容器進行端口映射

命令格式: ?? ?docker run/create -P … ? ? ? 或者 docker run/create –p …

命令參數(OPTIONS): ?? ?-P, --publish-all?? ??? ?將容器內部所有暴露端口進行隨機映射 ?? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -p, --publish list ?? ?手動指定端口映射

注意: ?? ?-p [HOST_IP]:[HOST_PORT]:CONTAINER_PORT ?? ?

? ? ? ? ? ? ? ? 如:-p ::80?? ??? ?將容器的80端口隨機(端口)映射到宿主機任意IP ?? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?-p :8000:6379 ?? ?將容器的6379端口映射到宿主機任意IP的8000端口 ?? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?-p 192.168.5.1::3306?? ?將容器的3306端口隨機(端口)映射到宿主機的192.168.5.1IP上

host 網絡模式

特點:

容器完全共享宿主機的網絡。網絡沒有隔離。宿主機的網絡就是容器的網絡。

容器、主機上的應用所使用的端口不能重復。例如:如果宿主機已經占用了8090端口,那么任何一個host模式的容器都不可以使用8090端口了;反之同理。

外部可以直接訪問容器,不需要端口映射。

容器的IP就是宿主機的IP

特殊host 網絡模式(Container網絡模式)

Container網絡模式,其實就是容器共享其他容器的網絡。

相當于該容器,,在網絡層面上,將其他容器作為“主機”。它們之間的網絡沒有隔離。

這些容器之間的特性同host模式。

使用方法: ?? ?Docker run/create --network container:CONTAINER …

none 網絡模式

特點:

容器上沒有網絡,也無任何網絡設備。

如果需要使用網絡,需要用戶自行安裝與配置。

應用場景

該模式適合需要高度定制網絡的用戶使用

overlay 網絡模式(一)

Overlay 網絡,也稱為覆蓋網絡。

Overlay 網絡的實現方式和方案有多種。Docker自身集成了一種,基于VXLAN隧道技術實現。

Overlay 網絡主要用于實現跨主機容器之間的通信。

應用場景:需要管理成百上千個跨主機的容器集群的網絡時。

overlay 網絡模式(二)- 了解TCP/IP協議棧

overlay 網絡模式(三)- 實現原理

IP隧道網絡原理

macvlan 網絡模式

macvlan網絡模式,最主要的特征就是他們的通信會直接基于mac地址進行轉發。

這時宿主機其實充當一個二層交換機。Docker會維護著一個MAC地址表,當宿主機網絡收到一個數據包后,直接根據mac地址找到對應的容器,再把數據交給對應的容器。

容器之間可以直接通過IP互通,通過宿主機上內建的虛擬網絡設備(創建macvlan網絡時自動創建),但與主機無法直接利用IP互通。

應用場景:由于每個外來的數據包的目的mac地址就是容器的mac地址,這時每個容器對于外面網絡來說就相當于一個真實的物理網絡設備。因此當需要讓容器來的網絡看起來是一個真實的物理機時,使用macvlan模式

三、總結

重點掌握: bridge網絡、host網絡、Container網絡模式的原理和使用(應用得較多,且host網絡性能最優)。 docker network命令的使用

了解: none網絡的效果 overlay網絡、macvlan網絡的原理。(使用起來難度較大)

總結

以上是生活随笔為你收集整理的Docker核心技术之网络管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。