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).

Cloud Server von IONOS

Vertrauen Sie auf flexibel skalierbare und zuverlässige Cloud Server auf hochverfügbarer Infrastruktur mit Standort Deutschland inklusive persönlichem Berater und minutengenauer Abrechnung - Sie zahlen also wirklich nur Ihre benötigten Ressourcen!

VMware Virtualisierung
Rest API
Unlimited Traffic

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.

SSL-Zertifikate von IONOS!

Wahren Sie dank SSL-Zertifikaten die Geheimhaltung Ihres Online-Verkehrs und stärken Sie das Vertrauen Ihrer Kunden in die Sicherheit Ihrer Webseite.

Geprüfte Sicherheit
Bis zu 256-bit Verschlüsselung
Einfache Aktivierung
SSL-Check

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
Hnweis

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