Redis
 sql >> Database >  >> NoSQL >> Redis

Collegamento di un container Redis con un altro container (Docker)

È facile rendere un servizio ospitato da Docker accessibile solo ad altri contenitori sullo stesso host. Se tu:

  1. Imposta il server per l'associazione o l'ascolto su 0.0.0.0 o ::0 (tutti gli indirizzi);
  2. Crea una rete Docker non predefinita (Docker Compose lo farà automaticamente);
  3. Avvia il contenitore del server e tutti i contenitori client associati su quella rete Docker (Docker Compose lo farà per impostazione predefinita); e
  4. Non non imposta un docker run -p o Docker Componi ports: opzione

quindi i container client possono raggiungere il container del server utilizzando il suo nome container come nome host, ma i processi non Docker sull'host e su altri host non possono raggiungere il server.

Se il tuo host ha più interfacce di rete e l'associazione a una di queste renderebbe un servizio "privato", puoi fare la stessa cosa con docker run -p . Se il tuo host ha un indirizzo IP pubblico 10.20.30.40/16 e anche un indirizzo IP privato 192.168.144.128/24, allora docker run -p 192.168.144.128:6379:6379 lo renderà disponibile alla rete privata (e ad altri contenitori Docker come sopra) ma non alla rete pubblica. (Il server stesso, all'interno del contenitore, deve ancora eseguire il binding a 0.0.0.0.)

Se altrimenti hai bisogno che il server sia visibile al di fuori dell'host, ma solo per alcuni indirizzi IP, penso che tu sia ridotto a iptables magia che non è nativa di Docker.