No meu ambiente de produção, tenho alguns aplicativos no Docker que precisam se conectar a serviços de apoio, por exemplo, o banco de dados no mesmo host. Descobri que precisava abrir uma exceção no iptables para aceitar essas conexões.
No entanto, o intervalo de IP da rede docker varia entre as reinicializações. No início era 172.18.0.0/24, depois 172.17.0.0/24 e 172.20.0.0/24, agora os ips são 192.168.172.2 e 192.168.192.3.
Como você pode aceitar o tráfego do Docker de dentro de um contêiner para dizer mariadb de maneira confiável e segura?
EDIT: Uma resposta parece serespecificando a configuração do IPAM, mas anexar a uma interface parece mais elegante
Responder1
Duas opções:
Primeiro
Permita o acesso a partir da docker0
interface em vez de um intervalo de IP específico.
iptable -A INPUT -i docker0 -dport 3306
Segundo
Mova o banco de dados para um contêiner.
Crie uma janela de encaixe chamada rede
Certifique-se de que todos os contêineres estejam conectados à rede nomeada. Você poderá então acessar o contêiner do banco de dados pelo nome de qualquer outro contêiner (na mesma rede).
Se você precisar acessar o banco de dados externamente, você pode mapear a porta e configurar as regras do iptables que deseja protegê-lo.