sql >> Base de Datos >  >> NoSQL >> Redis

Conexión de un contenedor Redis con otro contenedor (Docker)

Es fácil hacer que un servicio alojado en Docker solo sea accesible para otros contenedores en el mismo host. Si tu:

  1. Configure el servidor para enlazar o escuchar en 0.0.0.0 o ::0 (todas las direcciones);
  2. Cree una red Docker no predeterminada (Docker Compose lo hará automáticamente);
  3. Inicie el contenedor del servidor y cualquier contenedor de cliente asociado en esa red de Docker (Docker Compose lo hará de forma predeterminada); y
  4. Hacer no establecer un docker run -p o Docker Compose ports: opción

luego, los contenedores del cliente pueden llegar al contenedor del servidor utilizando su nombre de contenedor como nombre de host, pero los procesos que no son de Docker en el host y otros hosts no pueden llegar al servidor.

Si su host tiene múltiples interfaces de red y vincularse a una de ellas haría que un servicio fuera "privado", entonces puede hacer lo mismo con docker run -p . Si su host tiene una dirección IP pública 10.20.30.40/16 y también una dirección IP privada 192.168.144.128/24, entonces docker run -p 192.168.144.128:6379:6379 lo pondrá a disposición de la red privada (y otros contenedores de Docker como se indicó anteriormente), pero no de la red pública. (El propio servidor, dentro del contenedor, aún debe vincularse a 0.0.0.0.)

Si necesita que el servidor sea visible fuera del host, pero solo para algunas direcciones IP, creo que debe usar iptables magia que no es nativa de Docker.