手把手教你實現(xiàn)給Docker開啟IPv6網(wǎng)絡(luò)支持
正文
Docker 默認(rèn)是不開啟 IPv6 支持的,但是我們某些業(yè)務(wù)往往又需要 IPv6 的支持,特別是 IPv6 普及大勢所趨,本文主要介紹的是如何開啟 Docker 橋接網(wǎng)絡(luò) IPv6 支持,這篇文章具體操作僅供參考,建議以官方文檔為準(zhǔn)。
本文最重要的先決條件是主機(jī)商已經(jīng)分配給你一個公網(wǎng) IPv6 地址段,我們可以通過查看主機(jī)控制面板中信息、詢問主機(jī)供應(yīng)商或者直接SSH登錄主機(jī)使用命令ip -f inet6 addr show eth0獲取。命令方式獲取的 ipv6 地址輸出如下:
6: eth0: mtu 9000
inet6 2607:f0d0:1002:51::4/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::230:48ff:fe33:bc33/64 scope link
valid_lft forever preferred_lft forever
其中inet6 2607:f0d0:1002:51::4/64 scope global這行指示的IPv6地址是我們需要的目標(biāo)地址,注意我們這里選取的是公網(wǎng)IP,也就是后面scope global指示的,大家注意到后續(xù)還有一個fe80 開頭的 IPv6 地址,這個后面沒有 global,也就是通常意義內(nèi)網(wǎng) IPv6,本文不使用,當(dāng)然讀者可以根據(jù)實際需要選擇內(nèi)網(wǎng) IPv6 繼續(xù)參照下面介紹的步驟完成操作。
1、IPv6 地址段劃分
Docker 可以配置多個虛擬網(wǎng)絡(luò),對于 IPv4 來說通過形如 172.17.0.1/16、172.18.0.1/16、172.19.0.1/16 這樣內(nèi)網(wǎng)私有IP地址段配置多個 IPv4 虛擬網(wǎng)段,那么同樣的道理 IPv6 也建議劃分多個段,如果手動劃分不便,可以通過 IPv6 Subnetting Calculator自動劃分
如下圖所示:

比如剛才的 IPv6 地址劃分為 4 個網(wǎng)段如下:
2607:f0d0:1002:51::/66
2607:f0d0:1002:51:4000::/66
2607:f0d0:1002:51:8000::/66
2607:f0d0:1002:51:c000::/66
2、配置默認(rèn) Docker IPv6
編輯 Docker 配置文件/etc/docker/daemon.json,如果該文件不存在,請手動建立。配置文件內(nèi)容如下,如果你已有的配置文件缺少相應(yīng)的配置項,添加上即可,沒有必要完全覆蓋內(nèi)容。
{
"experimental": true,
"ipv6": true,
"ip6tables": true,
"fixed-cidr-v6": "2607:f0d0:1002:51::/66"
}這里ip6tables是指由 Docker 自動配置 IPv6 的防火墻規(guī)則,如果你希望自己手動配置,請改為 false 或者移除此項,否則容器將無法連接 IPv6 網(wǎng)絡(luò);fixed-cidr-v6 則是我們劃分的子網(wǎng)段的第一個,這里僅作示例請讀者根據(jù)實際情況修改。
完成配置后請使用systemctl restart docker重啟docker服務(wù)生效。完成此步后 Docker 算是完成對于 IPv6 的支持了。
3、配置 Docker Compose 的 IPv6 支持(可選)
這個主要是我編排容器時用的比較多,這里也記錄一下作為一個備忘吧。
Docker Compose 的配置文件內(nèi)容關(guān)于 IPv6 部分重點是網(wǎng)絡(luò)節(jié)配置,如果另外配置網(wǎng)絡(luò)的話,必須選擇與默認(rèn)daemon.json不同的 IPv6 子網(wǎng)段,例如:
networks:
example:
enable_ipv6: true
driver: bridge
driver_opts:
com.docker.network.enable_ipv6: "true"
ipam:
config:
- subnet: 172.23.0.0/16
- subnet: "2607:f0d0:1002:51:4000::/66"
gateway:2607:f0d0:1002:51:4000::1這里example網(wǎng)絡(luò)我們通過配置開啟IPv6支持,其中網(wǎng)絡(luò)段配置IPv4是172.23.0.0/16,IPv6選用余下的第二個網(wǎng)段2607:f0d0:1002:51:4000::/66注意這里不能和daemon.json配置的 IPv6 網(wǎng)段一樣。這里的 IP 配置同樣是一個示例,讀者請根據(jù)實際情況進(jìn)行修改。
以上就是手把手教你給Docker開啟IPv6網(wǎng)絡(luò)支持的詳細(xì)內(nèi)容,更多關(guān)于Docker開啟IPv6網(wǎng)絡(luò)支持的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
docker實現(xiàn)將本地文件復(fù)制到docker容器內(nèi)
這篇文章主要介紹了docker實現(xiàn)將本地文件復(fù)制到docker容器內(nèi)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Docker進(jìn)入容器并運(yùn)行命令的方法及常見問題解決
Docker?是一個開源的應(yīng)用容器引擎,它允許開發(fā)者打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的?Linux?機(jī)器上,也可以實現(xiàn)虛擬化,這篇文章主要介紹了Docker進(jìn)入容器并運(yùn)行命令的方法及常見問題,需要的朋友可以參考下2025-05-05
容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析
本篇博文不是詳細(xì)介紹容器技術(shù)的,而是具體的實踐。此篇博文分為兩個階段,分別是ci,cd。包含三部分內(nèi)容,分別是jenkins,docker,k8s的腳本淺析2022-03-03

