В моей производственной среде есть несколько приложений в Docker, которым нужно подключаться к резервным службам, например, к базе данных на том же хосте. Я обнаружил, что мне нужно сделать исключение в iptables, чтобы принимать эти соединения.
Однако диапазон IP-адресов сети Docker меняется между перезапусками. Сначала это был 172.18.0.0/24, позже 172.17.0.0/24 и 172.20.0.0/24, теперь IP-адреса 192.168.172.2 и 192.168.192.3.
Как можно надежно и безопасно принимать трафик Docker из контейнера, например, mariadb?
EDIT: Кажется, ответ такой:указание конфигурации IPAM, но присоединение к интерфейсу кажется более элегантным
решение1
Два варианта:
Первый
Разрешите доступ с docker0
интерфейса, а не для определенного диапазона IP-адресов.
iptable -A INPUT -i docker0 -dport 3306
Второй
Переместите базу данных в контейнер.
Создайте докер с именем network
Убедитесь, что все контейнеры подключены к указанной сети. После этого вы сможете получить доступ к контейнеру базы данных по имени из любого другого контейнера (в той же сети).
Если вам необходим внешний доступ к базе данных, вы можете сопоставить порт и настроить любые правила iptables, которые вы хотите защитить.