準備 macvlan 環境 - 每天5分鐘玩轉 Docker 容器技術(54)
除了 overlay,docker 還開發了另一個支持跨主機容器網絡的 driver:macvlan。
macvlan 本身是 linxu kernel 模塊,其功能是允許在同一個物理網卡上配置多個 MAC 地址,即多個 interface,每個 interface 可以配置自己的 IP。macvlan 本質上是一種網卡虛擬化技術,Docker 用 macvlan 實現容器網絡就不奇怪了。
macvlan 的最大優點是性能極好,相比其他實現,macvlan 不需要創建 Linux bridge,而是直接通過以太 interface 連接到物理網絡。下面我們就來創建一個 macvlan 網絡。
準備實驗環境
我們會使用 host1 和 host2 上單獨的網卡 enp0s9 創建 macvlan。為保證多個 MAC 地址的網絡包都可以從 enp0s9 通過,我們需要打開網卡的混雜模式。
ip link set enp0s9 promisc on
確保 enp0s9 狀態 UP 並且 promisc 模式已經生效。
因為 host1 和 host2 是 VirtualBox 虛擬機,還需要在網卡配置選項頁中設置混雜模式。
當前實驗環境如圖所示:
準備就緒,下一節我們創建 macvlan 網絡。
準備 macvlan 環境 - 每天5分鐘玩轉 Docker 容器技術(54)
相關推薦
準備 macvlan 環境 - 每天5分鐘玩轉 Docker 容器技術(54)
docker 教程 容器 除了 overlay,docker 還開發了另一個支持跨主機容器網絡的 driver:macvlan。macvlan 本身是 linxu kernel 模塊,其功能是允許在同一個物理網卡上配置多個 MAC 地址,即多個 interface,每個 interface 可以配
準備 overlay 網絡實驗環境 - 每天5分鐘玩轉 Docker 容器技術(49)
擴展性 tle 跨主機 mage drive ubuntu 1.5 ted grand 為支持容器跨主機通信,Docker 提供了 overlay driver,使用戶可以創建基於 VxLAN 的 overlay 網絡。VxLAN 可將二層數據封裝到 UDP 進行傳輸,Vx
macvlan 網絡隔離和連通 - 每天5分鐘玩轉 Docker 容器技術(57)
不能 數據包 ann float bsp 分鐘 uci tables mage 上一節我們創建了兩個 macvlan 並部署了容器,網絡結構如下: 本節驗證 macvlan 之間的連通性。 bbox1 能 ping 通 bbox3,bbox2
環境變量方式使用 Secret - 每天5分鐘玩轉 Docker 容器技術(158)
Kubernetes Docker 容器 教程 通過 Volume 使用 Secret,容器必須從文件讀取數據,會稍顯麻煩,Kubernetes 還支持通過環境變量使用 Secret。Pod 配置文件示例如下:創建 Pod 並讀取 Secret。通過環境變量 SECRET_USERNAME 和
調試 Dockerfile - 每天5分鐘玩轉 Docker 容器技術(15)
top add font tom middle 程序 ria family 是個 包括 Dockerfile 在內的任何腳本和程序都會出錯。有錯並不可怕,但必須有辦法排查,所以本節討論如何 debug Dockerfile。 先回顧一下通過 Dockerfile 構建鏡像
Dockerfile 常用指令 - 每天5分鐘玩轉 Docker 容器技術(16)
依次 官方文檔 構建 bottom str -s 暴露 工作 12px 是時候系統學習 Dockerfile 了。下面列出了 Dockerfile 中最常用的指令,完整列表和說明可參看官方文檔。 FROM指定 base 鏡像。 MAINTAINER設置鏡像的作
RUN vs CMD vs ENTRYPOINT - 每天5分鐘玩轉 Docker 容器技術(17)
docker 教程 容器 RUN、CMD 和 ENTRYPOINT 這三個 Dockerfile 指令看上去很類似很容易混淆。本節將通過實踐詳細討論它們的區別。簡單的說RUN 執行命令並創建新的鏡像層RUN 經常用於安裝軟件包。CMD 設置容器啟動後默認執行的命令及其參數但 CMD 能夠被 doc
使用公共 Registry - 每天5分鐘玩轉 Docker 容器技術(19)
docker 教程 容器 保存和分發鏡像的最直接方法就是使用 Docker Hub。Docker Hub 是 Docker 公司維護的公共 Registry。用戶可以將自己的鏡像保存到 Docker Hub 免費的 repository 中。如果不希望別人訪問自己的鏡像,也可以購買私有 repos
Docker 鏡像小結 - 每天5分鐘玩轉 Docker 容器技術(21)
列表 例如 normal one sys tro docker comm color 本節我們對 Docker 鏡像做個小結。 這一部分我們首先討論了鏡像的分層結構,然後學習了如何構建鏡像,最後實踐使用 Docker Hub 和本地 registry。 下面是鏡像的常用操作
如何運行容器?- 每天5分鐘玩轉 Docker 容器技術(22)
docker 教程 容器 上一章我們學習了如何構建 Docker 鏡像,並通過鏡像運行容器。本章將深入討論容器:學習容器的各種操作,容器各種狀態之間如何轉換,以及實現容器的底層技術。運行容器docker run 是啟動容器的方法。在討論 Dockerfile 時我們已經學習到,可用三種方式指定容器
兩種進入容器的方法 - 每天5分鐘玩轉 Docker 容器技術(23)
工作 技術 啟動進程 gin attach ant while col -c 我們經常需要進到容器裏去做一些工作,比如查看日誌、調試、啟動其他進程等。有兩種方法進入容器:attach 和 exec。 docker attach 通過 docker attach 可以 a
運行容器的最佳實踐 - 每天5分鐘玩轉 Docker 容器技術(24)
oat add vertical poi can size 執行命令 後臺 運行 按用途容器大致可分為兩類:服務類容器和工具類的容器。 1. 服務類容器以 daemon 的形式運行,對外提供服務。比如 web server,數據庫等。通過 -d 以後臺方式啟動這類容器是非常
容器常用操作 - 每天5分鐘玩轉 Docker 容器技術(25)
技術 order position 自動 code lec 資源 add 服務 前面討論了如何運行容器,本節學習容器的其他常用操作。 stop/start/restart 容器 通過 docker stop 可以停止運行的容器。 容器在 docker host 中實際上是
限制容器對內存的使用 - 每天5分鐘玩轉 Docker 容器技術(27)
upload 機制 性能 http tle war pac 啟動 物理內存 一個 docker host 上會運行若幹容器,每個容器都需要 CPU、內存和 IO 資源。對於 KVM,VMware 等虛擬化技術,用戶可以控制分配多少 CPU、內存資源給每個虛擬機。對於容器,D
限制容器對CPU的使用 - 每天5分鐘玩轉 Docker 容器技術(28)
docker 教程 容器 上節學習了如何限制容器對內存的使用,本節我們來看CPU。默認設置下,所有容器可以平等地使用 host CPU 資源並且沒有限制。Docker 可以通過 -c 或 --cpu-shares 設置容器使用 CPU 的權重。如果不指定,默認值為 1024。與內存限額不同,通過
限制容器的 Block IO - 每天5分鐘玩轉 Docker 容器技術(29)
docker 教程 容器 前面學習了如何限制容器對內存和CPU的使用,本節我們來看 Block IO。Block IO 是另一種可以限制容器使用的資源。Block IO 指的是磁盤的讀寫,docker 可通過設置權重、限制 bps 和 iops 的方式控制容器讀寫磁盤的帶寬,下面分別討論。註:目前
實現容器的底層技術 - 每天5分鐘玩轉 Docker 容器技術(30)
docker 教程 容器 為了更好地理解容器的特性,本節我們將討論容器的底層實現技術。cgroup 和 namespace 是最重要的兩種技術。cgroup 實現資源限額, namespace 實現資源隔離。cgroupcgroup 全稱 Control Group。Linux 操作系統通過 cg
none 和 host 網絡的適用場景 - 每天5分鐘玩轉 Docker 容器技術(31)
docker 教程 容器 本章開始討論 Docker 網絡。我們會首先學習 Docker 提供的幾種原生網絡,以及如何創建自定義網絡。然後探討容器之間如何通信,以及容器與外界如何交互。Docker 網絡從覆蓋範圍可分為單個 host 上的容器網絡和跨多個 host 的網絡,本章重點討論前一種。對於
學容器必須懂 bridge 網絡 - 每天5分鐘玩轉 Docker 容器技術(32)
docker 教程 容器 上一節我們討論了 none 和 host 類型的容器網絡,本節學習應用最廣泛也是默認的 bridge 網絡。Docker 安裝時會創建一個 命名為 docker0 的 linux bridge。如果不指定--network,創建的容器默認都會掛到 docker0 上。當前
理解容器之間的連通性 - 每天5分鐘玩轉 Docker 容器技術(34)
docker 教程 容器 通過前面小節的實踐,當前 docker host 的網絡拓撲結構如下圖所示,今天我們將討論這幾個容器之間的連通性。兩個 busybox 容器都掛在 my_net2 上,應該能夠互通,我們驗證一下:可見同一網絡中的容器、網關之間都是可以通信的。my_net2 與默認 bri