最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker Network(網絡)詳解

 更新時間:2025年06月27日 09:54:59   作者:南猿北者  
這篇文章主要介紹了docker Network(網絡),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

docker為什么需要網絡管理?

容器的網絡默認與宿主機及其他容器都是相互隔離, 但同時我們也要考慮下面的一些問題, 比如:

  • 多個容器之間是如何通信的
  • 容器和宿主機是如何通信的
  • 容器和外界主機是如何通信的
  • 容器中要運行一些網絡應用(如 nginx、web 應用、數(shù)據(jù)庫等),如果要讓外部也可以訪問這些容器內運行的網絡應用應該如何實現(xiàn)
  • 容器不想讓它的網絡與宿主機、與其他容器隔離應該如何實現(xiàn)
  • 容器根本不需要網絡的時候應該如何實現(xiàn)
  • 容器需要更高的定制化網絡(如定制特殊的集群網絡、定制容器間的局域網)應
  • 該如何實現(xiàn)

docker網絡架構簡介

Docker 容器網絡是為應用程序所創(chuàng)造的虛擬環(huán)境的一部分,它能讓應用從宿主機操作系統(tǒng)的網絡環(huán)境中獨立出來,形成容器自有的網絡設備、IP 協(xié)議棧、端口套接字、IP路由表、防火墻等等與網絡相關的模塊。

Docker 為實現(xiàn)容器網絡,主要采用的架構由三部分組成:CNM、Libnetwork 和驅動。

CNM:

Docker 網絡架構采用的設計規(guī)范是 CNM(Container Network Model)。CNM 中規(guī)定了 Docker 網絡的基礎組成要素:Sandbox、Endpoint、Network。

在這里插入圖片描述

  • Sandbox:提供了容器的虛擬網絡棧,也即端口、套接字、IP 路由表、防火墻、DNS 配置等內容。主要用于隔離容器網絡與宿主機網絡,形成了完全獨立的容器網絡環(huán)境。
  • Network:Docker 內部的虛擬子網,使得網絡內的參與者能夠進行通訊。
  • Endpoint:就是虛擬網絡的接口,就像普通網絡接口一樣,Endpoint 的主要職責是負責創(chuàng)建連接。Endpoint 類似于常見的網絡適配器,那也就意味著一個 Endpoint 只能接入某一個網絡, 當容器需要接入到多個網絡,就需要多個 Endpoint。

如上圖所示,容器 B 有兩個 Endpoint 并且分別接入 Networkd A 和 Network B。那么容器 A 和容器 B 之間是可以實現(xiàn)通信的,因為都接入了 NetworkA。但是容器 A 和容器 C 不可以通過容器 B 的兩個 Endpoint 通信。

Libnetwork:

  • Libnetwork 是 CNM 的一個標準實現(xiàn)。Libnetwork 是開源庫,采用 Go 語言編寫(跨平臺的),也是 Docker 所使用的庫,Docker 網絡架構的核心代碼都在這個庫中。
  • Libnetwork 實現(xiàn)了 CNM 中定義的全部三個組件,此外它還實現(xiàn)了本地服務發(fā)現(xiàn)、基于 Ingress 的容器負載均衡,以及網絡控制層和管理層等功能。

驅動

  • 驅動主要負責實現(xiàn)數(shù)據(jù)層相關內容,例如網絡的連通性和隔離性是由驅動來處理的。驅動通過實現(xiàn)特定網絡類型的方式擴展了 Docker 網絡棧,例如橋接網絡和覆蓋網絡。
  • Docker 內置了若干驅動,通常被稱作原生驅動或者本地驅動。
  • 例如 Bridge Driver、Host Driver、Overlay Driver、MacVLan Driver、IPVLan Driver、None Driver 等等。每個驅動負責創(chuàng)建其上所有網絡資源的創(chuàng)建和管理。

常見的網絡類型

1. bridge網絡:

  • bridge 驅動會在 Docker 管理的主機上創(chuàng)建一個 Linux 網橋。默認情況下,網橋上的容器可以相互通信。也可以通過 bridge 驅動程序配置,實現(xiàn)對外部容器的訪問。
  • Docker 容器的默認網絡驅動.當我們需要多個容器在同一個 Docker 主機上通信時,橋接網絡是最佳選擇。

2. host網絡:

  • 對于獨立容器,移除容器和 Docker 主機之間的網絡隔離,并直接使用主機的網絡。
  • 當網絡堆棧不應該與 Docker 主機隔離,但是希望容器的其他資源被隔離時,主機網絡是最佳選擇。

3. container 網絡:

  • 這個模式指定新創(chuàng)建的容器和引進存在的一個容器共享一個網絡 ,而不是和宿主機共享。
  • 新創(chuàng)建的容器不會創(chuàng)建自己的網卡,配置自己的 ip,而是和一個指定的容器共享 ip,端口等,兩個容器除了網絡方面,其他的如文件系統(tǒng)、進程列表等還是隔離的。兩個容器的進程可以通過 lo 網卡設備通信。

4. none 網絡:

  • Docker 容器擁有自己的 Network Namespace,但是,并不為 Docker 容器進行任何網絡配置。
  • 也就是說,這個 Docker 容器沒有網卡、IP、路由等信息。容器完全網絡隔離。

5. overlay 網絡:

  • 借助 Docker 集群模塊 Docker Swarm 搭建的跨 Docker Daemon 網絡。將多個Docker 守護進程連接在一起,使集群服務能夠相互通信。
  • 當我們需要運行在不同Docker 主機上的容器進行通信時,或者當多個應用程序使用集群服務協(xié)同工作時,覆蓋網絡是最佳選擇。

在 Docker 安裝時,會自動安裝一塊 Docker 網卡稱為 docker0,它是一個網橋設備,主要用于 Docker 各容器及宿主機的網絡通信:

在這里插入圖片描述

docker網絡管理命令

docker network create

語法: docker network create [OPTIONS] NETWORK 

功能: 創(chuàng)建一個網絡,不指定-d選項,默認是橋接網絡 

參數(shù):

  • -d: 網絡驅動,該選項接受overlay網絡和birdge網絡,如果有其它第三方網絡,在這里指定即可;
  • –gateway:網關地址
  • –subnet:設置網絡的ip地址范圍,eg:192.168.32.0/24
  • –ipv6:啟用ipv6

實戰(zhàn):

在這里插入圖片描述

在這里插入圖片描述

docker network inspect

語法: docker network inspect [OPTIONS] NETWORK [NETWORK…] 

功能: 查看一個或多個網絡的詳細信息 

參數(shù):

  • -f: 指定格式顯示;

實戰(zhàn):

在這里插入圖片描述

docker network connect

語法: docker network connect [OPTIONS] NETWORK CONTAINER 

功能: 將一個容器連接進一個網絡 

參數(shù):

  • –ip: 給容器指定ipv4地址;
  • –ipv6: 給容器指定ipv6地址;

實戰(zhàn):

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

docker network disconnect

語法: docker network disconnect [OPTIONS] NETWORK CONTAINER 

功能: 斷開容器與網絡的連接,并且在執(zhí)行該命令的時候,容器必須正在運行; 

參數(shù):

  • -f:強制斷開;

實戰(zhàn):

在這里插入圖片描述

docker network prune

語法: docker network prune [OPTIONS] 

功能: 刪除所有未被容器引用的網絡; 

參數(shù):

  • -f: 不要輸出提示信息

實戰(zhàn):

在這里插入圖片描述

docker network rm

語法: docker network rm NETWORK [NETWORK…] 

別名: docker network remove 

功能: 刪除一個或多個網絡 

參數(shù):

  • -f:強制刪除;

實戰(zhàn):

在這里插入圖片描述

docker network ls

語法: docker network ls [OPTIONS] 

別名: docker network list 

功能: 列出所有的網絡 

參數(shù):

  • -q: 輸出網絡號

實戰(zhàn):

在這里插入圖片描述

網絡詳解

docker bridge網絡

Docker Bridge 網絡采用內置的 bridge 驅動,bridge 驅動底層采用的是 Linux 內核中Linux bridge 技術。

就網絡而言,bridge 網絡是在網絡段之間轉發(fā)流量的鏈路層設備,而網橋可以是在主機內核中運行的硬件設備或軟件設備;就 Docker 而言,橋接網絡使用軟件網橋 docker0,它允許連接到同一網橋網絡的容器進行通信,同時提供與未連接到該網橋網絡容器的隔離。

在這里插入圖片描述

默認情況下,創(chuàng)建的容器在沒有使用–network 參數(shù)指定要加入的 docker 網絡時,

默認都是加入 Docker 默認的單機橋接網絡,即下面的 name 為 bridge 的網絡。

其中,容器、bridge和Host::eth0之間的之間的關系可以參考:手機、路由器、光貓之間的關系;

在日常的生活中,我們手機發(fā)出的數(shù)據(jù)包想要發(fā)送到外網的話,那么需要先將數(shù)據(jù)包發(fā)送給路由器,路由器的WAN口連接著光貓,因此路由器在拿到數(shù)據(jù)包過后,又會將其轉發(fā)給光貓,再由光貓將數(shù)據(jù)轉發(fā)到外網;

默認的 bridge 網絡會被映射到內核中為 docker0 的網橋上。

Docker 默認的 bridge 網絡和 Linux 內核中的 docker0 網橋是一一對應的關系。

bridge 是 Docker 對網絡的命名,而 docker0 是內核中網橋的名字。

在這里插入圖片描述

注意:

  • docker run --network選項會使容器加入指定的網絡,而不會加入默認的docker0網絡;如果沒有指定該選項,那么容器加入的是默認docker0網絡;
  • 對于兩個加入docker0網絡的容器來說,互相ping對方的容器名是ping不通的,但是對于兩個加入自定義bridge網絡的容器來說互相ping容器名可以ping通;

docker Host網絡

Docker 容器運行默認都會分配獨立的 Network Namespace 隔離子系統(tǒng), 但是如果基于 host 網絡模式,容器將不會獲得一個獨立的 Network Namespace,而是和宿主機共用同一個 Network Namespace,容器將不會虛擬出自己的網卡,IP 等,而是直接使用宿主機的 IP 和端口。

在這里插入圖片描述

連接到 host 網絡的容器共享宿主機的網絡棧,容器的網絡配置與宿主機完全一樣。我

們可以通過 --network=host 指定使用 host 網絡。

  • 在host網絡下,容器和宿主機處于同一個Network Namespace下,共享宿主機的端口和網絡接口等資源;
  • 在host模式下,不需要使用-p選項來指定端口映射;
  • 相比于bridge類型網絡的優(yōu)點就是,轉發(fā)效率高,因為在host網絡中,避免了中間層的轉發(fā);
  • 相比于bridge類型網絡的缺點就是與宿主機共享同一套Network Namespace,網絡資源都耦合在了一起,容器發(fā)生資源沖突;

docker Container 網絡

Docker Container 的 other container 網絡模式是 Docker 中一種較為特別的網絡的模式。之所以稱為“other container 模式”,是因為這個模式下的 Docker Container,會使用其他容器的網絡環(huán)境。之所以稱為“特別”,是因為這個模式下容器的網絡隔離性會處于 bridge 橋接模式與 host 模式之間。Docker Container 共享其他容器的網絡環(huán)境,則至少這兩個容器之間不存在網絡隔離,而這兩個容器又與宿主機以及除此之外其他的容器存在網絡隔離。

在這里插入圖片描述

Docker Container 的 other container 網絡模式實現(xiàn)邏輯如下:

  • 查找 other container(即需要被共享網絡環(huán)境的容器)的網絡 namespace;
  • 將新創(chuàng)建的 Docker Container(也是需要共享其他網絡的容器)的 namespace, 使用 other container 的 namespace

心得:

  • 可以使用docker run --network container:要加入的容器網絡的容器名來加入container網絡;
  • 容器2在加入容器1的網絡過后和容器1共用同一套Network Namespace;
  • 容器2的網絡依賴于容器1的網絡,一旦容器1重啟過后,容器2的網絡服務將不可用,只可使用本地環(huán)回網絡;

docker none 網絡

none 網絡就是指沒有網絡。掛在這個網絡下的容器除了 lo(本地回環(huán)),沒有其他任何網卡。

心得:

  • 針對一些對安全性要求比較高并且不需要聯(lián)網的應用, 可以使用 none 網絡, 比如生成隨機密碼, 避免生成密碼被第三方獲取;
  • 一些第三方的應用可能需要 docker 幫忙創(chuàng)建一個沒有網絡的容器, 網絡由第三方自己來配置。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 前端轉全棧必須要掌握的一些Docker知識

    前端轉全棧必須要掌握的一些Docker知識

    對于長期深耕于瀏覽器環(huán)境的前端開發(fā)者而言,邁向全棧并非僅僅是技術棧的延伸,更是一次思維模式的根本性轉變,這篇文章主要介紹了前端轉全棧必須要掌握的一些Docker知識,需要的朋友可以參考下
    2026-03-03
  • 在docker容器中安裝vi命令的簡單操作

    在docker容器中安裝vi命令的簡單操作

    這篇文章主要介紹了在docker容器中安裝vi命令的簡單操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • docker啟動Nginx的兩種方式小結

    docker啟動Nginx的兩種方式小結

    本文介紹了兩種獲取Nginx鏡像的方式:直接從DockerHub拉取和通過Dockerfile構建,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • Docker部署MySQL鏡像的保姆級教程

    Docker部署MySQL鏡像的保姆級教程

    docker是一種容器化技術,可以將應用程序及其依賴項打包成一個獨立的可移植容器,mysql是一個流行的關系型數(shù)據(jù)庫管理系統(tǒng),在Docker中部署MySQL鏡像可以方便地創(chuàng)建和管理MySQL數(shù)據(jù)庫實例,本文給大家介紹了Docker部署MySQL鏡像的教程,需要的朋友可以參考下
    2025-06-06
  • docker離線部署docker,部署業(yè)務方式

    docker離線部署docker,部署業(yè)務方式

    這篇文章主要介紹了docker離線部署docker,部署業(yè)務方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • docker端口映射的實現(xiàn)示例

    docker端口映射的實現(xiàn)示例

    Docker 端口映射允許我們將容器內部的服務綁定到宿主機上的一個或多個端口,本文主要介紹了docker端口映射的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 部署k8s和docker、jenkins的區(qū)別和聯(lián)系詳析

    部署k8s和docker、jenkins的區(qū)別和聯(lián)系詳析

    Jenkins、Docker與Kubernetes是現(xiàn)代軟件開發(fā)和運維中不可或缺的核心工具,它們分別承擔不同層次的關鍵角色,這篇文章主要介紹了部署k8s和docker、jenkins的區(qū)別和聯(lián)系的相關資料,需要的朋友可以參考下
    2025-11-11
  • 更換k8s容器運行時環(huán)境為docker的過程

    更換k8s容器運行時環(huán)境為docker的過程

    這篇文章主要介紹了更換k8s容器運行時環(huán)境為docker的過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-10-10
  • Linux搭建Docker環(huán)境的詳細過程(最新推薦)

    Linux搭建Docker環(huán)境的詳細過程(最新推薦)

    Docker從17.03版本之后分為CE(Community Edition: 社區(qū)版)和EE(Enterprise Edition: 企業(yè)版),相對于社區(qū)版本,企業(yè)版本強調安全性,但需付費使用,這里我們使用社區(qū)版本即可,這篇文章給大家介紹Linux搭建Docker環(huán)境的詳細過程,感興趣的朋友一起看看吧
    2025-04-04
  • docker-compose限制容器cpu和內存方式

    docker-compose限制容器cpu和內存方式

    這篇文章主要介紹了docker-compose限制容器cpu和內存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

环江| 额敏县| 临邑县| 都江堰市| 任丘市| 镇沅| 凤山市| 易门县| 高台县| 永靖县| 合水县| 伊金霍洛旗| 武清区| 天水市| 金溪县| 凤城市| 精河县| 京山县| 潜山县| 桃源县| 淳化县| 密山市| 青岛市| 高清| 富裕县| 五原县| 昌江| 蒲城县| 萝北县| 桂东县| 茂名市| 柳林县| 会同县| 林西县| 通山县| 灯塔市| 吐鲁番市| 正镶白旗| 利津县| 南投市| 五家渠市|