Страницы

Поиск по вопросам

понедельник, 18 марта 2019 г.

Docker: сеть, интерфейсы и контейнеры

У меня есть два сетевых интерфейса: 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>"
После редактирования перезапустите докер.

Комментариев нет:

Отправить комментарий