Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Conectando um contêiner Redis com outro contêiner (Docker)


É fácil tornar um serviço hospedado no Docker acessível apenas a outros contêineres no mesmo host. Se vocês:
  1. Defina o servidor para vincular ou escutar em 0.0.0.0 ou ::0 (todos os endereços);
  2. Crie uma rede do Docker não padrão (o Docker Compose fará isso automaticamente);
  3. Inicie o contêiner do servidor e qualquer contêiner de cliente associado nessa rede do Docker (o Docker Compose fará isso por padrão); e
  4. Não não defina um docker run -p ou Docker Compose ports: opção

então os contêineres do cliente podem alcançar o contêiner do servidor usando seu nome de contêiner como um nome de host, mas os processos não-Docker no host e outros hosts não podem alcançar o servidor.

Se o seu host tiver várias interfaces de rede e a vinculação a uma delas tornaria um serviço "privado", você poderá fazer a mesma coisa com docker run -p . Se o seu host tiver o endereço IP público 10.20.30.40/16 e também o endereço IP privado 192.168.144.128/24, então docker run -p 192.168.144.128:6379:6379 irá disponibilizá-lo para a rede privada (e outros contêineres do Docker como acima), mas não para a rede pública. (O próprio servidor, dentro do contêiner, ainda precisa se vincular a 0.0.0.0.)

Se você precisar que o servidor seja visível fora do host, mas apenas para alguns endereços IP, acho que você precisa de iptables mágica que não é nativa do Docker.