Немного текста про поддержку IPv6 в докере и ещё кой-какие нюансы docker networking.
IPv4
Для разминки рассмотрим обычную IPv4-only систему. На хост-машине есть интерфейс eth0
. К этому интерфейсу привязан внешний IP-адрес. Ещё есть loopback интерфейс. Когда на такую машину мы устанавливаем docker, он создаёт себе дефолтную сеть с названием bridge
. Для этой сети на хост-машине создается еще один интерфейс docker0
. У него тоже появляется ip адрес, например, 172.17.0.1
. Когда мы запускаем контейнер, докер выделяет контейнеру адрес из выбранной сети (bridge
по умолчанию). Например, 172.17.0.5
. Внутри контейнера появляется интерфейс eth0
и на нём адрес 172.17.0.5
. Итак, с адресами базово разобрались. Теперь попробуем понять, как процесс внутри контейнера может обращаться к внешним ресурсам и как сделать так, чтобы можно было снаружи сходить в контейнер.