
Чтобы включить IPv6 в настройках Docker, я установил следующее в файле /etc/docker/daemon.json
:
{
"ipv6": true,
"fixed-cidr-v6": "2a01:xxxx:yyyy:zzzz/64"
}
Я получил его 2a01:xxxx:yyyy:zzzz
от своего интернет-провайдера и нашел его через ip addr | grep inet6 | grep global
.
Мой интернет-провайдер постоянно меняет zzzz
бит, и он также меняется при перезагрузке маршрутизатора.
Вопросы:
- A) Существует ли настройка Docker, которая не требует жесткого кодирования изменяемых значений? (Идея: установка
fixed-cidr-v6
некоторого локального значения ссылкиfd00:...
) - B) Я могу использовать динамический DNS-клиент для обновления записи AAAA моих доменов. Но опять же IPv6 жестко закодирован в моей локальной настройке.
- C) Docker, похоже, не может использоваться с IPv6 в реальном мире. Должен ли я запускать свои приложения непосредственно на хосте (не в контейнерах) за обратным прокси?
решение1
Если вы не можете получить статический IPv6, то вам будет сложно назначить своим контейнерам Docker глобальные (публичные) IPv6-адреса. Я написал руководство по использованиюпубличные адреса IPv6 в Docker, но он использует статические адреса IPv6 (часто доступные на виртуальных машинах в размещенных средах).
Альтернативой является использованиеDocker IPv6Nat Демон
Я предпочитаю эту технику, потому что она делает стеки IPv4 и IPv6 согласованными в Docker. Я написал еще одинруководство по полной изоляции входящих и исходящих сетей для Docker с поддержкой IPv4 и IPv6