Meu objetivo é limitar o acesso aos contêineres docker a apenas alguns endereços IP públicos. Existe um processo simples e repetível para atingir meu objetivo? Entendendo apenas o básico do iptables enquanto uso as opções padrão do Docker, estou achando muito difícil.
Eu gostaria de executar um contêiner, torná-lo visível para a Internet pública, mas permitir apenas conexões de hosts selecionados. Eu esperaria definir uma política INPUT padrão de REJECT e permitir apenas conexões de meus hosts. Mas as regras e cadeias NAT do Docker atrapalham e minhas regras INPUT são ignoradas.
Alguém pode fornecer um exemplo de como atingir meu objetivo, considerando as seguintes suposições?
- Hospede o IP público 80.80.80.80 na eth0
- Hospede IP privado 192.168.1.10 em eth1
docker run -d -p 3306:3306 mysql
- Bloquear todas as conexões com o host/container 3306, exceto dos hosts 4.4.4.4 e 8.8.8.8
Fico feliz em vincular o contêiner apenas ao endereço IP local, mas precisaria de instruções sobre como configurar as regras de encaminhamento do iptables adequadamente, que sobrevivem ao processo do docker e às reinicializações do host.
Obrigado!