Дотримуйтесь https://stackoverflow.com/a/46266757 ("Яка найкраща практика докера + ufw під Ubuntu", відповідь @mkubaczyk), щоб правильно налаштувати Docker з UFW, але все ще не може отримати доступ до Інтернету в контейнерах.
Що може бути проблемою?
Дотримуйтесь https://stackoverflow.com/a/46266757 ("Яка найкраща практика докера + ufw під Ubuntu", відповідь @mkubaczyk), щоб правильно налаштувати Docker з UFW, але все ще не може отримати доступ до Інтернету в контейнерах.
Що може бути проблемою?
Відповіді:
Проблема може бути з контейнерами, які ви налаштовуєте за допомогою docker-compose. За замовчуванням створена нова мережа для служб у docker-compose.ymlфайлі. Це призводить до того, що у вас є не тільки docker0інтерфейс із 172.17.0.0/16налаштуванням підмережі, але й зазвичай інші інтерфейси 172.x.0.0 / 16.
Для подолання цього слід додати більше правил для ваших мереж:
$ iptables -t nat -A POSTROUTING ! -o br-XXX -s 172.YYY.0.0/16 -j MASQUERADE
де br-XXX - ім'я інтерфейсу, 172.YYY.0.0 / 16 - підмережа.
Крім того, використовуйте єдину docker0мережу, маючи в своєму розпорядженні docker-compose.ymlдля кожної послуги описане:
network_mode: bridge