Redis
 sql >> Base de données >  >> NoSQL >> Redis

Connecter un conteneur Redis à un autre conteneur (Docker)

Il est facile de rendre un service hébergé par Docker uniquement accessible aux autres conteneurs sur le même hôte. Si vous :

  1. Configurer le serveur pour qu'il se lie à ou écoute sur 0.0.0.0 ou ::0 (toutes les adresses) ;
  2. Créer un réseau Docker autre que celui par défaut (Docker Compose le fera automatiquement) ;
  3. Lancez le conteneur serveur et tous les conteneurs clients associés sur ce réseau Docker (Docker Compose le fera par défaut) ; et
  4. Ne pas définir un docker run -p ou Docker Compose ports: options

alors les conteneurs clients peuvent atteindre le conteneur serveur en utilisant son nom de conteneur comme nom d'hôte, mais les processus non Docker sur l'hôte et les autres hôtes ne peuvent pas atteindre le serveur.

Si votre hôte dispose de plusieurs interfaces réseau et que la liaison à l'une d'entre elles rendrait un service "privé", vous pouvez faire la même chose avec docker run -p . Si votre hôte a l'adresse IP publique 10.20.30.40/16 et également l'adresse IP privée 192.168.144.128/24, alors docker run -p 192.168.144.128:6379:6379 le mettra à la disposition du réseau privé (et d'autres conteneurs Docker comme ci-dessus) mais pas du réseau public. (Le serveur lui-même, à l'intérieur du conteneur, doit encore se lier à 0.0.0.0.)

Si vous avez autrement besoin que le serveur soit visible hors hôte, mais uniquement pour certaines adresses IP, je pense que vous en êtes à iptables magie qui n'est pas native de Docker.