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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker默认网络管理

發(fā)布時間:2024/1/23 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker默认网络管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在進行Docker安裝時,Docker就會自動創(chuàng)建三種網(wǎng)絡(luò)。客戶端可以通過網(wǎng)絡(luò)管理指令進行查看,具體操作指令如下。

$ docker network ls

? 上述指令用于列舉Docker中的所有網(wǎng)絡(luò),執(zhí)行后的效果如圖1所示。

圖1 Docker默認網(wǎng)絡(luò)
從圖1可以看出,Docker中默認的三種網(wǎng)絡(luò)分別為bridge、host和none,其中名為bridge的網(wǎng)絡(luò)就是默認的bridge驅(qū)動網(wǎng)絡(luò),也是容器創(chuàng)建時默認的網(wǎng)絡(luò)管理方式,配置后可以與宿主機通信從而實現(xiàn)與互聯(lián)網(wǎng)通信功能,而host和none屬于無網(wǎng)絡(luò),容器添加到這兩個網(wǎng)絡(luò)時不能與外界網(wǎng)絡(luò)通信。

下面通過一個示例來演示默認的bridge網(wǎng)絡(luò)管理方式,其執(zhí)行過程如下。

(1)創(chuàng)建并啟動容器。在終端窗口中執(zhí)行如下指令。

$ docker run -itd --name=networktest ubuntu

上述指令在后臺啟動了一個鏡像名稱為ubuntu的容器,并為啟動后的容器命名為networktest。

(2)使用網(wǎng)絡(luò)查看指令查看網(wǎng)絡(luò)詳情,具體操作指令如下。

$ docker network inspect bridge

上述指令用于核查名稱為bridge的網(wǎng)絡(luò)詳情,需要指明網(wǎng)絡(luò)名稱或者網(wǎng)絡(luò)ID,執(zhí)行上述指令后,效果如圖2所示。
從圖2可以看出,執(zhí)行上述指令后就會顯示出bridge網(wǎng)絡(luò)的所有詳細信息,其中就包括了使用默認的bridge網(wǎng)絡(luò)管理方式啟動的名稱為networktest的容器。

需要注意的是,這里介紹的三種網(wǎng)絡(luò)bridge、host和none都是在非集群環(huán)境下Docker提供的默認網(wǎng)絡(luò),而在Docker Swarm集群環(huán)境下,除了這三種默認網(wǎng)絡(luò)外,Docker還提供了docker_gwbridge和ingress兩種默認網(wǎng)絡(luò)。

小提示:

在上一章中已經(jīng)啟動了多個容器,并且都是默認使用bridge網(wǎng)絡(luò)進行管理的。為了不對本章節(jié)相關(guān)講解和測試造成干擾,建議先將前面章節(jié)創(chuàng)建的容器全部移除。
雖然Docker提供的默認網(wǎng)絡(luò)的使用比較簡單,但是為了保證各容器中應(yīng)用的安全性,在實際開發(fā)中更推薦使用自定義的網(wǎng)絡(luò)進行容器管理。

在Docker中,可以自定義bridge網(wǎng)絡(luò)、overlay網(wǎng)絡(luò),也可以創(chuàng)建network plugin(網(wǎng)絡(luò)插件)或者遠程網(wǎng)絡(luò)以實現(xiàn)容器網(wǎng)絡(luò)的完全定制和控制。接下來將分別針對這幾種自定義網(wǎng)絡(luò)進行講解。

  • Bridge networks(橋接網(wǎng)絡(luò))
  • 為了保證容器的安全性,我們可以使用基于bridge的驅(qū)動創(chuàng)建新的bridge網(wǎng)絡(luò),這種基于bridge驅(qū)動的自定義網(wǎng)絡(luò)可以較好的實現(xiàn)容器隔離。

    ? 需要說明的是,這種用戶自定義的基于bridge驅(qū)動的網(wǎng)絡(luò)對于單主機的小型網(wǎng)絡(luò)環(huán)境管理是一個不錯的選擇,但是對于大型的網(wǎng)絡(luò)環(huán)境管理(如集群)就需要考慮使用自定義overlay集群網(wǎng)絡(luò)。

  • Overlay network in swarm mode(Swarm集群中的覆蓋網(wǎng)絡(luò))
  • ? 在Docker Swarm集群環(huán)境下可以創(chuàng)建基于overlay驅(qū)動的自定義網(wǎng)絡(luò)。為了保證安全性,Swarm集群使自定義的overlay網(wǎng)絡(luò)只適用于需要服務(wù)的群集中的節(jié)點,而不會對外部其他服務(wù)或者Docker主機開放。

  • Custom network plugins(定制網(wǎng)絡(luò)插件)
  • ? 如果前面幾種自定義網(wǎng)絡(luò)都無法滿足需求時,就可以使用Docker提供的插件來自定義網(wǎng)絡(luò)驅(qū)動插件。自定義網(wǎng)絡(luò)插件會在Docker進程所在主機上作為另一個運行的進程。

    自定義網(wǎng)絡(luò)驅(qū)動插件與其他插件遵循相同的限制和安裝規(guī)則,所有插件都使用Docker提供的插件API,并且有一個包含安裝、啟動、停止和激活的生命周期。由于自定義網(wǎng)絡(luò)插件使用較少,所以讀者只需了解即可。
    上一節(jié)已經(jīng)對Docker中幾種常用的自定義網(wǎng)絡(luò)進行了簡單介紹,本小節(jié)將針對非集群環(huán)境下基于bridge驅(qū)動的自定義網(wǎng)絡(luò)進行詳細講解。

  • 創(chuàng)建自定義網(wǎng)絡(luò)
  • ? 在Docker主機上可以使用docker network create指令來創(chuàng)建網(wǎng)絡(luò),具體操作指令如下。

    $ docker network create --driver bridge isolated_nw

    ? 執(zhí)行上述指令可以創(chuàng)建一個基于bridge驅(qū)動的名稱為isolated_nw的網(wǎng)絡(luò)。其中–driver(可簡寫為-d)用于指定網(wǎng)絡(luò)驅(qū)動類型,isolated_nw就是新創(chuàng)建的網(wǎng)絡(luò)名稱。需要說明的是,–driver bridge可以省略,省略時Docker會默認使用基于bridge驅(qū)動來創(chuàng)建新的網(wǎng)絡(luò)。

    ? 創(chuàng)建完網(wǎng)絡(luò)后,可以使用docker network ls指令查看創(chuàng)建的網(wǎng)絡(luò)是否成功,效果如圖1所示。
    從圖1可以看出,新創(chuàng)建的isolated_nw網(wǎng)絡(luò)已經(jīng)在列表中展示出來,這說明新的bridge網(wǎng)絡(luò)創(chuàng)建成功。

    除docker network ls指令外,還可以使用docker network inspect指令查看新建網(wǎng)絡(luò)的詳細信息。

  • 使用自定義網(wǎng)絡(luò)啟動容器
  • 自定義網(wǎng)絡(luò)創(chuàng)建成功后,就可以使用該網(wǎng)絡(luò)啟動一個容器,具體操作指令如下。

    $ docker run --network=isolated_nw -itd --name=nwtest busybox

    執(zhí)行上述指令后,會創(chuàng)建一個名為nwtest的容器,指令中的–network參數(shù)指定了該容器的網(wǎng)絡(luò)連接為自定義的isolated_nw。

    通過docker inspect nwtest指令可以查看啟動后的容器詳情,來核查其網(wǎng)絡(luò)管理方式,效果如圖2所示。
    從圖2可以看出,名為nwtest的容器使用的就是自定義的isolated_nw網(wǎng)絡(luò)進行容器網(wǎng)絡(luò)管理的。

  • 為容器添加網(wǎng)絡(luò)管理
  • 名為nwtest的容器使用的只有自定義的isolated_nw一種網(wǎng)絡(luò)管理方式,我們還可以繼續(xù)為該容器添加其他網(wǎng)絡(luò)管理方式,具體操作指令如下。

    $ docker network connect bridge nwtest

    執(zhí)行上述指令后,會為容器nwtest另添加一種默認的bridge網(wǎng)絡(luò)管理方式。再次使用docker inspect nwtest指令查看該容器網(wǎng)絡(luò)詳情,效果如圖3所示。
    從圖3可以看出,執(zhí)行完為容器添加網(wǎng)絡(luò)管理的指令后,容器nwtest就擁有了兩種網(wǎng)絡(luò)管理方式,分別為默認的bridge網(wǎng)絡(luò)和自定義的isolated_nw網(wǎng)絡(luò)。

  • 斷開容器網(wǎng)絡(luò)連接
  • ? 容器既可以連接網(wǎng)絡(luò),也可以斷開網(wǎng)絡(luò)。這里以斷開nwtest容器的自定義網(wǎng)絡(luò)isolated_nw為例進行演示,斷開網(wǎng)絡(luò)連接的指令如下。

    $ docker network disconnect isolated_nw nwtest

    ? 斷開網(wǎng)絡(luò)連接的指令與連接網(wǎng)絡(luò)的指令類似,在使用時也需要指定網(wǎng)絡(luò)名稱和容器名稱。

    小提示:

    一個容器可以有一到多個網(wǎng)絡(luò)連接,當使用斷開網(wǎng)絡(luò)連接的指令將一個容器內(nèi)的所有的網(wǎng)絡(luò)連接方式全部斷開后,雖然容器還在運行,但是容器內(nèi)部的應(yīng)用將無法被外界訪問。

  • 移除自定義網(wǎng)絡(luò)
  • ? 當不再需要某個網(wǎng)絡(luò)時,可以將該網(wǎng)絡(luò)移除,但在移除網(wǎng)絡(luò)之前,一定要先將所有與該網(wǎng)絡(luò)連接的容器斷開。移除自定義網(wǎng)絡(luò)的指令如下。

    $ docker network rm isolated_nw

    ? 執(zhí)行上述指令后,就可以移除名稱為isolated_nw的自定義網(wǎng)絡(luò)。當網(wǎng)絡(luò)移除成功后,會返回網(wǎng)絡(luò)名稱。為了驗證網(wǎng)絡(luò)是否移除成功,可以使用docker network ls指令列舉所有網(wǎng)絡(luò)進一步確認。

    總結(jié)

    以上是生活随笔為你收集整理的Docker默认网络管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。