Docker 網絡簡介:工作流程、網絡基礎、網絡命令
已發表: 2020-04-30目錄
介紹
在這個虛擬化時代,網絡管理員不再只處理傳統的網絡組件,例如路由器、LAN/WAN 組件和交換機。 他們必須在虛擬化平台上處理網絡組件。 整個 IT 行業都對容器化的概念感興趣,其中強大的網絡技能至關重要。
由於 Docker 是最常用的容器化軟件之一,因此Docker 網絡技能對於配置容器非常重要。 目前,超過12,000 家公司使用 Docker 容器來運送他們的應用程序。 這些公司包括摩根大通、ThoughtWorks 和 Neudesic。
在本文中,我們將了解 Docker 的介紹, Docker 網絡的基礎知識。
讓我們首先了解 Docker 的基礎知識。
什麼是 Docker?
Docker是一個引入容器化概念的軟件打包平台。 容器化是軟件應用程序與所有必需的依賴項(如庫、模塊和操作系統)打包的過程。 這使得該軟件可以在任何環境中輕鬆執行。
這些軟件包稱為Docker 容器。 這些容器用於為特定環境部署應用程序。 它可以是 Ubuntu 容器、CentOS 容器、Tomcat-Ubuntu 或 CakePHP 容器。

比方說,創建一個 Java 應用程序是為了在安裝了 Tomcat 服務器的環境中執行。 開發完成後,應用程序被送去測試。 測試人員必須重新設置 Tomcat 服務器才能運行應用程序。 然後,它將被發送到生產環境,這將再次需要設置相同的環境。
但是,一個已經在其中的環境的 Docker 容器將解決從頭開始的問題。 因此,開發人員、測試人員和生產單位成員可以執行應用程序,而無需一次又一次地設置 Tomcat 服務器。
閱讀: Docker 項目理念和主題
碼頭工人工作流程
應用程序或項目代碼寫在Docker 文件中。 此文件包含應用程序要求和依賴項。 該文件生成一個Docker 映像,稍後用於執行文件中的代碼。
映像包含運行應用程序所需的代碼、環境變量、配置文件、運行時和庫。 然後將圖像上傳到Docker Hub ,這是一個由 Docker 圖像組成的 GIT 存儲庫。 從這些存儲庫中,您可以獲取和上傳您自己的 Docker 映像。
質量保證團隊或公司生產團隊的成員獲取圖像以開發其容器。 由於所有這些容器可能相互隔離, Docker 網絡是它們相互交互的一組規則。
現在您對 Docker 有了基本的了解,讓我們仔細看看Docker 網絡。
另請閱讀:印度的 Docker 工資
Docker 網絡基礎
最初安裝 Docker 時,配置了三個不同的 Docker 網絡——無、主機和網橋。 none 和 host 是 Docker 堆棧的重要組件,不能刪除。 可以配置橋接網絡,稱為 docker0 網絡。
Docker 可用於創建許多網絡。 您可以將容器添加到多個網絡。 連接到多個網絡的容器可以與這些網絡的容器連接。
Docker中使用的主要網絡驅動如下:
橋
這是 Docker 在主機上創建的私有默認網絡。 該網絡會自動創建一個 IP 子網和網關。 屬於該網絡的容器是同一子網的一部分。 因此,該網絡中的容器通過 IP 尋址進行通信。

當應用程序在獨立容器中執行時,橋接網絡驅動程序非常有用。 Docker 安裝默認代表 docker0。 如果您在控制台中鍵入以下命令,Docker 將返回描述橋接網絡的 JSON 對象:
碼頭工人網絡檢查橋
主持人
Host 驅動程序用於獨立容器。 如果容器使用宿主機組網方式,那麼Docker宿主機和網絡棧之間的隔離就被解除了。 容器沒有獲得分配的 IP 地址。
例如,執行一個綁定到 80 端口的容器,並使用主機網絡。 在這種情況下,容器的應用程序將在主機 IP 地址的端口 80 上可用。 當容器處理大量端口時,這種網絡模式很有用。
此外,主機驅動程序允許您在同一台主機上運行多個 Web 容器。
沒有
在這種類型的網絡中,容器無法訪問外部網絡,也不會連接到其他容器或網絡。 當您希望禁用特定容器上的網絡堆棧時,使用無。
None 只有一個環回接口,這意味著沒有外部網絡接口。
覆蓋
這用於創建跨越 swarm 集群中所有節點的內部專用網絡。 docker swarm 網絡是一組正在執行 Docker 應用程序的虛擬機或物理機。 這個網絡驅動程序在Docker 網絡中很重要,因為它允許獨立容器和 swarm 服務之間的通信。
不同 Docker 守護程序上的獨立容器也可以與此驅動程序交互。 因此,您不必為容器執行操作系統級別的路由。
麥克蘭
該網絡允許您將 MAC 地址分配給容器。 這使它看起來像一個物理設備。 使用此地址,Docker 守護程序將流量路由到特定路由器。 Docker 守護進程是在主機操作系統上運行並與之交互以執行不同活動的服務器。 Macvlan 網絡簡化了容器之間的通信。
在處理預期連接到物理網絡的遺留應用程序時, Macvlan是一個不錯的選擇。 如果你建立一個 Macvlan 網絡,它可以有兩種模式——橋接模式或 802.1q 中繼橋接模式。
網絡插件
您可以將第三方網絡插件與 Docker 一起使用。 這些插件在 Docker Hub 上可用,並且可以通過第三方供應商獲得。
Docker 網絡命令
最常見的docker 網絡命令如下:
列出 Docker 網絡
此代碼將列出主機上的所有 Docker 網絡 -
碼頭工人網絡 ls
創建 Docker 網絡
以下命令將幫助您在啟動容器之前創建網絡:
docker network create --driver drivername 名稱
這裡, drivername是網絡驅動程序的名稱, 列出網絡命令
此命令用於列出可用的網絡命令:
碼頭工人網絡幫助
刪除網絡
rm 命令可用於刪除網絡。
碼頭工人網絡 rm mynetwork
連接到 Docker 網絡
創建 Docker 網絡時,默認情況下它連接到橋接網絡。 運行容器時,可以使用以下命令連接到另一個網絡:
docker 容器運行 -it –net=mynetwork nginx
獲取容器端口

您可以使用 port 命令獲取容器的端口:
碼頭港口集裝箱名稱/ID
結論
Docker 是當今軟件開發的一個重要方面。 隨著越來越多的公司轉向容器化,網絡對於隔離容器很重要。 這允許開發安全地協同工作的 Web 應用程序。 這些網絡有助於容器之間更好的通信。
Docker 幫助許多公司縮短了部署時間並降低了相關成本。 因此,如果您是初學者,本文將有助於您深入了解docker 網絡的基礎知識。
如果您有興趣了解有關全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目和作業,IIIT -B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。