
為了在我的 docker 設定中啟用 IPv6,我已在檔案中進行了設定/etc/docker/daemon.json
:
{
"ipv6": true,
"fixed-cidr-v6": "2a01:xxxx:yyyy:zzzz/64"
}
我從我的 ISP 處獲得2a01:xxxx:yyyy:zzzz
並透過 找到它ip addr | grep inet6 | grep global
。
我的 ISP 不斷改變該zzzz
位,並且在重新啟動路由器時它也會改變。
問題:
- A)是否有不需要硬編碼更改值的 docker 設定? (想法:設定
fixed-cidr-v6
為某些連結本地值fd00:...
) - B) 我可以使用動態 DNS 用戶端來更新我的網域 AAAA 記錄。但同樣,IPv6 在我的本地設定中是硬編碼的。
- C) Docker 在現實世界中似乎無法與 IPv6 一起使用。我是否必須直接在反向代理後面的主機上(而不是在容器中)運行我的應用程式?
答案1
如果您無法取得靜態 IPv6,那麼您想要為 Docker 容器指派全域範圍(公有)IPv6 位址將會很困難。我寫了一個使用指南Docker 中的公用 IPv6 位址,但它確實依賴靜態 IPv6 位址(通常在託管環境中的虛擬機器上可用)。
另一種方法是使用Docker IPv6Nat 守護程式
我更喜歡這種技術,因為它使 IPv4 和 IPv6 堆疊在 Docker 內保持一致。我又寫了一篇支援 IPv4 和 IPv6 的 Docker 完全隔離入口和出口網路的教程