手把手教你如何給 Docker 開啟 IPv6 網絡支持


 



Docker 默認是不開啟 IPv6 支持的,但是我們某些業務往往又需要 IPv6 的支持,特別是 IPv6 普及大勢所趨,本文主要介紹的是如何開啟 Docker 橋接網絡 IPv6 支持,這篇文章具體操作僅供參考,建議以官方文檔為准。

本文最重要的先決條件是主機商已經分配給你一個公網 IPv6 地址段,我們可以通過查看主機控制面板中信息、詢問主機供應商或者直接SSH登錄主機使用命令ip -f inet6 addr show eth0獲取。命令方式獲取的 ipv6 地址輸出如下:

其中inet6 2607:f0d0:1002:51::4/64 scope global這行指示的IPv6地址是我們需要的目標地址,注意我們這里選取的是公網IP,也就是后面scope global指示的,大家注意到后續還有一個fe80 開頭的 IPv6 地址,這個后面沒有 global,也就是通常意義內網 IPv6,本文不使用,當然讀者可以根據實際需要選擇內網 IPv6 繼續參照下面介紹的步驟完成操作。

1、IPv6 地址段划分

Docker 可以配置多個虛擬網絡,對於 IPv4 來說通過形如 172.17.0.1/16172.18.0.1/16172.19.0.1/16 這樣內網私有IP地址段配置多個 IPv4 虛擬網段,那么同樣的道理 IPv6 也建議划分多個段,如果手動划分不便,可以通過 IPv6 Subnetting Calculator自動划分,如下圖所示:



比如剛才的 IPv6 地址划分為 4 個網段如下:

2、配置默認 Docker IPv6

編輯 Docker 配置文件/etc/docker/daemon.json,如果該文件不存在,請手動建立。配置文件內容如下,如果你已有的配置文件缺少相應的配置項,添加上即可,沒有必要完全覆蓋內容。

這里ip6tables是指由 Docker 自動配置 IPv6 的防火牆規則,如果你希望自己手動配置,請改為 false 或者移除此項,否則容器將無法連接 IPv6 網絡;fixed-cidr-v6 則是我們划分的子網段的第一個,這里僅作示例請讀者根據實際情況修改。

完成配置后請使用systemctl restart docker重啟docker服務生效。完成此步后 Docker 算是完成對於 IPv6 的支持了。

3、配置 Docker Compose 的 IPv6 支持(可選)

這個主要是我編排容器時用的比較多,這里也記錄一下作為一個備忘吧。

Docker Compose 的配置文件內容關於 IPv6 部分重點是網絡節配置,如果另外配置網絡的話,必須選擇與默認daemon.json不同的 IPv6 子網段,例如:

這里example網絡我們通過配置開啟IPv6支持,其中網絡段配置IPv4是172.23.0.0/16,IPv6選用余下的第二個網段2607:f0d0:1002:51:4000::/66注意這里不能daemon.json配置的 IPv6 網段一樣。這里的 IP 配置同樣是一個示例,讀者請根據實際情況進行修改。

4、參考資料

Enable IPv6 support


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM