Redis in Docker Containern verwenden – so geht’s
Redis ist eines der beliebtesten Docker-Images. Der Schlüsselwertspeicher ermöglicht es unter anderem, Daten von Docker-Containern zu speichern. Redis und Docker lassen sich im Terminal miteinander verbinden. Wir zeigen Ihnen, wie das geht.
Anforderungen für die Verwendung von Redis
Nach der Installation von Docker auf einem Linux-Server stellt sich häufig die Frage, wo die Daten der Docker-Container eigentlich gespeichert werden sollen. Redis ist eine NoSQL-Datenbank, die aufgrund ihrer blitzschnellen Performance die ideale Lösung bietet. Bevor Sie Redis und Docker verbinden, stellen Sie sicher, dass folgende Anforderungen erfüllt sind:
- Docker ist installiert und läuft.
- Sie sind mit grundlegenden Befehlen und Funktionen von Docker vertraut.
- Sie haben einen Cloud Server unter Linux (Ubuntu 14.04 oder CentOS 7).
- On-Demand skalierbar, Load Balancer und Traffic inklusive
- Hochverfügbare Server-Plattform
- ISO-zertifizierte Rechenzentren am Standort Deutschland
- Inkl. 100,- € Startguthaben im 1. Monat
Ausführen von Redis in einem Docker-Container
Das offizielle Redis-Image ist eines der drei beliebtesten Docker-Bilder. Es enthält den Befehl EXPOSE 6379 (den Standard-Redis-Port), der die Verwendung von Redis automatisch für alle verknüpften Container ermöglicht.
Um eine Redis-Instanz in einem Docker-Container namens my-redis-container auszuführen, verwenden Sie den Befehl:
sudo docker run --name my-redis-container -d redis
Verbindung von Redis läuft in einem Docker-Container
Um eine Verbindung zu einer Redis-Instanz von einem anderen Docker-Container aus herzustellen, fügen Sie --link[Redis Containername oder ID]:redis zum docker-run-Befehl dieses Containers hinzu.
Sie können also beispielsweise einen Container namens my-redis-application aus dem offiziellen CentOS-7-Image starten und ihn mit dem eben erstellten Container my-redis-container verknüpfen. Dazu verwenden Sie diesen Befehl:
sudo docker run --name my-redis-application --link my-redis-container:redis -d centos
Um eine Verbindung zu einer Redis-Instanz von einem anderen Docker-Container mit einer Befehlszeilenschnittstelle herzustellen, verknüpfen Sie den Container und geben Sie den Host und den Port mit -h redis -p 6379 an.
Zum Beispiel:
sudo docker run -it --name my-redis-cli --link my-redis-container:redis --rm redis redis-cli -h redis -p 6379
Dadurch werden Sie mit dem neuen Container my-redis-cli über eine redis-cli-Verbindung mit my-redis-container verbunden. Verwenden Sie die Tastenkombinationen [Strg] + [P] und [Strg] + [Q], um diesen Container zu verlassen und zur Befehlszeile zurückzukehren.
- Verschlüsselt Webseiten-Kommunikation
- Verhindert Sicherheits-Warnungen
- Verbessert Google-Platzierung
SSL-Zertifikat-Checker
Verbindung zu einem Redis-Container von einem Remote-Server aus herstellen
Es ist auch möglich, Docker mit Redis von einem Server zu verbinden. Hierzu müssen Sie die Portweiterleitung von Docker verwenden. Diese erlaubt es Ihnen, auf den Container mit der IP-Adresse oder dem Domänennamen des Hostservers zuzugreifen.
Um das Port-Forwarding von Docker für Redis zu verwenden, fügen Sie dem Befehl docker run das Flag -p [host port]:6379 hinzu.
Dann lässt sich beispielsweise die Port-Weiterleitung so einrichten, dass Sie sich über Port 7001 (den standardisierten TCP-/UDP-Port) mit dem Container verbinden können. Dafür lautet der Befehl docker run wie folgt:
sudo docker run --name my-redis-container -p 7001:6379 -d redis
Sie können anschließend auf einen anderen Server wechseln und mit dem folgenden Befehl auf den my-redis-container-Container zugreifen:
sudo redis-cli -h [host IP or domain name] -p 7001
Hat der Hostserver, auf dem der Redis-Docker-Container läuft, beispielsweise die IP-Adresse 192.168.0.1, erlaubt es Ihnen der folgende Befehl, von jedem beliebigen Server aus auf den Redis-Container zuzugreifen:
sudo redis-cli -h 192.168.0.1 -p 7001
Wenn Sie eine Firewall verwenden, müssen Sie einen externen Zugriff auf die entsprechenden Ports zulassen, ansonsten wird der Zugriff blockiert. Hierzu müssen Sie nur in Ihre Firewall-Einstellungen gehen und den Zugriff auf die betroffenen Ports erlauben.
Laden einer benutzerdefinierten redis.conf-Datei
Wenn Sie eine benutzerdefinierte redis.conf-Datei haben, in der Sie Redis bereits konfiguriert haben, können Sie diese beim Containerstart laden, indem Sie dem Befehl docker run das Flag -v hinzufügen:
-v [path to custom redis.conf file]:/usr/local/etc/redis/redis.conf
An diesen Befehl müssen Sie nur noch den Dateipfad Ihrer conf-Datei anhängen. Um beispielsweise die benutzerdefinierte Datei mit dem Pfad /data/myredis/redis.conf zu laden, lautet der Befehl:
sudo docker run --name my-redis-container -v /data/myredis/redis.conf:/usr/local/etc/redis/redis.conf -d redis