sql >> Database >  >> NoSQL >> Redis

Docker [Errno 111] Connect-oproep mislukt ('127.0.0.1', 6379)

Probeer 127.0.0.1:6379 te wijzigen naar redis:6379 .

Hoewel Redis actief is, is uw python container kan er niet mee communiceren; dit komt omdat het verbinding probeert te maken met 127.0.0.1:6379 , maar vanuit het perspectief van de container loopt daar niets. Dit kan een beetje frustrerend zijn om te debuggen, maar het is een beetje makkelijker als je er rekening mee houdt dat containers hun eigen netwerknaamruimte krijgen. Als resultaat, python 's localhost !=redis 's localhost !=de localhost van uw hostmachine .

Gelukkig is het eenvoudig om containers te verbinden die dezelfde bridge delen, en standaard docker-compose creëert een enkel brugnetwerk en verbindt al uw containers ermee, waardoor ze de nodige DNS krijgen om elkaar te ontdekken. Als gevolg hiervan werkt container-naar-container-communicatie eenvoudig door de servicenaam te gebruiken.

Let op:het is mogelijk om containers in dezelfde naamruimte uit te voeren en erin te draaien in de naamruimte van de host, via de --net=container:<container-id> of --net=host vlag. Dit is vooral handig voor het uitvoeren van foutopsporingsprogramma's in een container en deze te koppelen aan de netwerknaamruimte van een andere container of de host, b.v. gebruik netshoot om te zien welke poorten binnen de container luisteren (blootgesteld of niet), docker run --rm -it --net container:test_web_1 nicolaka/netshoot netstat -tulpn .



  1. Procedure:bibliotheken van derden opnemen in uw MapReduce-taak

  2. Een applicatie ontwerpen met Redis als datastore. Wat? Waarom?

  3. Is er een limiet op het aantal argumenten dat redis-commando's zoals ZADD of HMGET aankunnen?

  4. Spring data Match en filter geneste array