Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Docker [Errno 111] Połączenie nie powiodło się ('127.0.0.1', 6379)

Spróbuj zmienić 127.0.0.1:6379 do redis:6379 .

Chociaż Redis działa, Twój python kontener nie może się z nim komunikować; dzieje się tak, ponieważ próbuje połączyć się z 127.0.0.1:6379 , ale z perspektywy kontenera nic tam nie działa. Debugowanie może być nieco frustrujące, ale jest to łatwiejsze, jeśli pamiętasz, że kontenery mają własną sieć nazw. W rezultacie python lokalny host !=redis 's localhost !=localhost twojego komputera-hosta .

Na szczęście łatwo jest połączyć kontenery, które współdzielą ten sam most i domyślnie docker-compose tworzy pojedynczą sieć mostową i łączy z nią wszystkie kontenery, zapewniając niezbędny DNS, aby umożliwić im wzajemne wykrywanie. W rezultacie komunikacja kontener-kontener działa po prostu przy użyciu nazwy usługi.

Uwaga:możliwe jest uruchamianie kontenerów w tej samej przestrzeni nazw i uruchamianie ich w przestrzeni nazw hosta za pomocą --net=container:<container-id> lub --net=host flaga. Jest to szczególnie przydatne przy uruchamianiu narzędzi debugowania w kontenerze i dołączaniu ich do sieciowej przestrzeni nazw innego kontenera lub hosta, np. użycie netshoot, aby zobaczyć, które porty nasłuchują w kontenerze (odkryte lub nie), docker run --rm -it --net container:test_web_1 nicolaka/netshoot netstat -tulpn .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Alternatywy dla struktur zagnieżdżonych w Redis?

  2. Nginx lua redis plik cookie nie ustawia się

  3. Dlaczego klucze Redis nie wygasają?

  4. Jak naprawić ostrzeżenia podczas uruchamiania obrazu redis:alpine Docker

  5. Cel i opis listy klientów Redis