Docker CNM(Container Network Model)是 Docker 引擎的網(wǎng)絡(luò)模型,它是實(shí)現(xiàn) Docker 容器網(wǎng)絡(luò)的核心架構(gòu)。Docker CNM 允許用戶根據(jù)自己的需要定制容器的網(wǎng)絡(luò)連接方式,并提供靈活性、可擴(kuò)展性和易用性。
Docker CNM 采用插件架構(gòu),使得用戶可以輕松地?cái)U(kuò)展和定制網(wǎng)絡(luò)插件,以滿足特定的網(wǎng)絡(luò)需求。同時(shí), Docker CNM 也提供了內(nèi)置的網(wǎng)絡(luò)插件,包括 Bridge、Overlay、Host、None 網(wǎng)絡(luò),使得用戶可以快速、方便地創(chuàng)建容器網(wǎng)絡(luò)。
下面是 Docker CNM 的一些核心概念:
· Sandbox:容器網(wǎng)絡(luò)連接的基本單元,每個(gè)容器都有其獨(dú)立的 Sandbox,用于隔離容器內(nèi)部的網(wǎng)絡(luò); · Endpoint:連接 Sandbox 和網(wǎng)絡(luò)的通道,每個(gè)容器可以有多個(gè) Endpoint; · Network:網(wǎng)絡(luò)是 Endpoint 的集合,用于將一組 Endpoint 組合成一個(gè)網(wǎng)絡(luò),使得同一網(wǎng)絡(luò)內(nèi)的容器可以相互通信。
使用 Docker CNM 創(chuàng)建容器網(wǎng)絡(luò)非常簡單,以下是一個(gè)使用 Bridge 網(wǎng)絡(luò)創(chuàng)建容器的示例:
// 創(chuàng)建 Bridge 網(wǎng)絡(luò) $ docker network create --driver bridge my-network // 創(chuàng)建容器并將其連接到 my-network 網(wǎng)絡(luò) $ docker run -itd --name container1 --network my-network alpine // 創(chuàng)建另一個(gè)容器并將其連接到 my-network 網(wǎng)絡(luò) $ docker run -itd --name container2 --network my-network alpine // 在 container2 中 ping container1,成功說明容器已經(jīng)在同一網(wǎng)絡(luò)中 $ docker exec -it container2 ping container1
Docker CNM 提供了靈活和可擴(kuò)展的網(wǎng)絡(luò)模型,使用戶能夠輕松定制容器網(wǎng)絡(luò),從而滿足各種網(wǎng)絡(luò)需求。