Redis
 sql >> база данни >  >> NoSQL >> Redis

Свързване на Redis контейнер с друг контейнер (Docker)

Лесно е да направите услуга, хоствана от Docker, достъпна само за други контейнери на същия хост. Ако вие:

  1. Настройте сървъра да се свързва или слуша на 0.0.0.0 или ::0 (всички адреси);
  2. Създайте мрежа на Docker, която не е по подразбиране (Docker Compose ще направи това автоматично);
  3. Стартирайте сървърния контейнер и всички свързани клиентски контейнери в тази Docker мрежа (Docker Compose ще направи това по подразбиране); и
  4. Не задайте docker run -p или Docker Compose ports: опция

тогава контейнерите на клиента могат да достигнат до сървърния контейнер, използвайки името на контейнера му като име на хост, но процесите, които не са Docker на хоста и другите хостове, не могат да достигнат до сървъра.

Ако вашият хост има множество мрежови интерфейси и свързването към един от тях би направило услугата „частна“, тогава можете да направите същото с docker run -p . Ако вашият хост има публичен IP адрес 10.20.30.40/16 и частен IP адрес 192.168.144.128/24, тогава docker run -p 192.168.144.128:6379:6379 ще го направи достъпен за частната мрежа (и други Docker контейнери, както по-горе), но не и за публичната мрежа. (Самият сървър, вътре в контейнера, все още трябва да се свърже с 0.0.0.0.)

Ако иначе трябва сървърът да бъде видим извън хоста, но само за някои IP адреси, мисля, че сте до iptables магия, която не е родна за Docker.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Съхраняване на стойности на redis hget в променлива в nodejs

  2. Как да се обадя на BGSAVE от BookSleeve?

  3. Елемент от списъка Redis Pop По брой елементи

  4. Уведомяване за изтичане на ключа в redis python

  5. Вземете стойности по ключов модел в StackExchange.Redis