У меня есть два сетевых интерфейса: eth0 - локальная сеть, tun0 - через него я хожу в интернет(поднимается и тушится с помощью самописного скрипта). На этой же машине стоит docker, у него есть свое собственное окружение для контейнеров. Из этого окружения наружу торчит интерфейс docker0, все контейнеры связываются с внешним миром через него. Тут возникает проблема: при поднятом tun0(при этом он становится дефолтным) контейнеры не хотят через него связываться. Как я понял надо как то перенаправить docker0 на tun0? Как это сделать?
Ответ
Отвечаю на собственный вопрос:
Проблема заключалась в том, что у меня не был указан dns сервер моей сети и по умолчанию был отключен ip_forwarding.
Для начала его нужно включить, раскомметнировав строчку:
net.ipv4.ip_forward=1
в файле /etc/sysctl.conf и перезагрузив машину.
Далее в файле /etc/defaut/docker редактируем строку:
DOCKER_OPTS="-dns <ваш_адрес_dns>"
После редактирования перезапустите докер.
Комментариев нет:
Отправить комментарий