Docker использует iptables
и модуль ядра под названием br_netfilter
для управления сетями между контейнерами. Когда запускается демон Docker, он создает различные правила IPTables, необходимые для работы. И каждый раз, когда предоставляется новый контейнер, создаются и управляются дополнительные правила. Если iptables находится в странном состоянии, был изменен вами или не установлен, это может привести к вашей проблеме.
Я упоминал br_netfilter
выше. Работает аналогичным образом. Вы можете подтвердить, что модуль ядра загружен командой lsmod
. EG: lsmod | grep br_netfilter
. Если он не загружен, вы можете загрузить его с помощью modprobe. EG: modprobe br_netfilter
. Если он недоступен, то модуль ядра не установлен в вашем скомпилированном ядре. Если вам удастся запустить modprobe
для загрузки модуля, вам нужно будет изменить /etc/modprobe.conf
или удалить файл в /etc/modprobe.d
, чтобы обеспечить постоянство модулей ядра между перезагрузками.