sql >> Databasteknik >  >> NoSQL >> Redis

Ansluta en Redis-behållare med en annan behållare (Docker)

Det är enkelt att göra en Docker-värd tjänst endast tillgänglig för andra behållare på samma värd. Om du:

  1. Ställ in servern att binda till eller lyssna på 0.0.0.0 eller ::0 (alla adresser);
  2. Skapa ett icke-standard Docker-nätverk (Docker Compose gör detta automatiskt);
  3. Starta serverbehållaren och eventuella associerade klientbehållare på det Docker-nätverket (Docker Compose gör detta som standard); och
  4. Gör inte ställ in en docker run -p eller Docker Compose ports: alternativ

sedan kan klientbehållarna nå serverbehållaren med dess behållarnamn som ett värdnamn, men icke-Docker-processer på värden och andra värdar kan inte nå servern.

Om din värd har flera nätverksgränssnitt och bindning till ett av dessa skulle göra en tjänst "privat" så kan du göra samma sak med docker run -p . Om din värd har offentlig IP-adress 10.20.30.40/16 och även privat IP-adress 192.168.144.128/24, då docker run -p 192.168.144.128:6379:6379 kommer att göra det tillgängligt för det privata nätverket (och andra Docker-behållare enligt ovan) men inte det offentliga nätverket. (Själva servern, inuti behållaren, måste fortfarande binda till 0.0.0.0.)

Om du annars behöver att servern ska vara synlig utanför värddatorn, men bara för vissa IP-adresser, tror jag att du är nere på iptables magi som inte är inbyggt i Docker.




  1. 6 bästa metoder för att distribuera MongoDB på Amazon EC2

  2. Hur behåller jag has_many :through-relationer när jag serialiserar till JSON och tillbaka i Rails 4.0.3?

  3. Hur undviker man transparent_hugepage/defrag-varning från mongodb?

  4. Mongoose JS findOne returnerar alltid null