Wie und warum Redis in Docker ausgeführt wird

Veröffentlicht: 2023-05-02

Redis ist eine hochverfügbare In-Memory-Datenbank. Sein festplattenpersistenter Schlüsselwert-Datenspeicher ist ideal für mehrere Anwendungen mit hoher Verfügbarkeit.

Auf der anderen Seite ist Docker ein Werkzeug, um Anwendungen und Dienste zu containerisieren, ihre Umgebungen zu isolieren und sie separat laufen zu lassen. Sie können Docker als Paketmanager für Anwendungen und Dienste mit allen erforderlichen Abhängigkeiten, Konfigurationen, Skripten usw. verwenden. Ein Skript namens Dockerfile wird im Docker-Container platziert und ermöglicht Ihnen, den Container als einzelne Entität bereitzustellen.

In diesem Artikel erfahren Sie, wie Sie diese beiden Open-Source-Technologien effektiv einsetzen. Es geht auch darauf ein, warum das Ausführen von Redis-Clustern in Docker-Containern so wichtig ist, und welche Vorteile und Vorteile dies im Vergleich zum Ausführen von Redis-Clustern auf virtuellen Maschinen oder Bare-Metal-Servern hat.

Die verschiedenen Verwendungen von Redis

Redis hat mehrere Vorteile. Zu den beliebtesten Anwendungen gehören:

  • Verteilter Schlüsselwert-Datenbank-Cache
  • Nachrichtenbroker
  • Caching-Server für persistente Objekte

Außerdem kann Redis mehrere Datentypen und -strukturen unterstützen, wodurch es sowohl als primäre als auch als sekundäre Datenbankschicht für Anwendungen geeignet ist. Es unterstützt auch Listen, Streams, Hashes, Sets usw.

Sie können die Vorteile von Redis jedoch weiter steigern, indem Sie es containerisieren.

Redis ist am besten in einem Container! Erfahren Sie, wie Sie Redis & Docker effektiv nutzen und die Vorteile der Containerisierung Ihrer Redis-Apps freischalten – alles in diesem Beitrag ️ Click to Tweet

Redis ist am besten in einem Container

Redis ist mit über einer Milliarde Downloads eines der beliebtesten Docker-Images in der Docker-Registrierung. Der Grund für die Containerisierung von Redis-Anwendungen besteht darin, die Vorteile von Docker und die Community-Unterstützung für die häufigsten Redis-Anwendungsfälle zu nutzen.

Das Redis Docker-Image verfügt über eine Open-Source-Community, die eine klare Dokumentation erstellt und pflegt. Und um das Ganze abzurunden, ist Docker äußerst zuverlässig und ermöglicht eine einfache Verwendung und Flexibilität.

Benutzerfreundlichkeit

Docker isoliert die Umgebungen für Apps und Dienste, die in Containern ausgeführt werden. Isolation bedeutet, dass Sie Redis-Images verpacken, erstellen und versenden können, die unabhängig vom Host-Betriebssystem funktionieren, was die Entwicklung und Ausführung von Redis-Anwendungen in Docker vereinfacht. Darüber hinaus vereinfacht Docker Desktop die Einrichtung einer konsistenten lokalen Entwicklungsumgebung, was besonders für große Teams nützlich ist.

Sicherheit:

Sie können mit Redis innerhalb eines Containers nach Sicherheitslücken suchen. Docker verwendet Snyk, ein Tool, das Einblick in die Sicherheit von Docker-Images bietet. Es scannt Docker-Container und bietet Details und Abhilfe bei beschädigten Images. Docker kann auch eine Software-Stückliste (SBOM) zum Scannen aller Abhängigkeiten generieren, die beim Erstellen von Container-Images verwendet werden, obwohl dies noch experimentell ist.

Flexibilität

Docker ist für die meisten Unix-basierten und Windows-Betriebssysteme und -Anwendungen verfügbar. Da Sie Container verwenden, um Software von ihrer Umgebung zu isolieren, um sicherzustellen, dass sie mit allen Systemen funktioniert, werden Redis-Apps und -Dienste trotz der Infrastruktur immer ausgeführt.

Zuverlässigkeit

Mit Docker können Sie jeden containerisierten Workload in jeder Umgebung zuverlässig ausführen. Redis ist in Docker zuverlässig, da Docker-Container regelmäßig Snapshots des Container-Images erstellen, sodass Sie im Falle einer fehlerhaften oder beschädigten Datenbank auf diese Snapshots zurückgreifen können. Sie können auch ein Docker-Volume erstellen, indem Sie ein Verzeichnis mounten, das die Redis-Datenbankdatei im Container enthält.

Ein Docker-Volume hilft, den Container vor versehentlichem Datenverlust zu schützen. Ein Vorbehalt ist jedoch, dass Docker-Volumes keine Image-Snapshots enthalten. Sie müssen die Daten in Ihrer Redis-Datenbankdatei regelmäßig manuell speichern oder sichern.

So verwenden Sie Redis mit Docker

Um Ihren Redis-Speicher in einem Docker-Container abzulegen, müssen Sie Docker in der Zielumgebung haben. Die folgende Anleitung zeigt Ihnen, wie Sie Docker unter Windows installieren.

Sie können einer Anleitung auf der Docker-Website für ein Unix- oder Unix-basiertes Betriebssystem folgen. Nach der Installation und Konfiguration können Sie ein Netzwerk in Ihrem Docker-Container erstellen. Dann können Sie Redis installieren und eine Datenbank erstellen. Schließlich können Sie Operationen an Ihrer Redis-Datenbank ausführen.

Installieren Sie zunächst Docker auf Ihrem Betriebssystem. Navigieren Sie optional zum Docker Hub und erstellen Sie ein Konto. Sie benötigen ein Konto, um Ihre Bilder zu erstellen und zu veröffentlichen.

Docker-Hub-Anmeldeformular
Docker-Hub

Nachdem Sie ein Konto erstellt haben, melden Sie sich bei Docker Hub an und laden Sie die neueste Version von Docker Desktop für Ihr Betriebssystem herunter.

Downloadseite für Docker Desktop mit Optionen für Betriebssysteme.
Docker-Downloadseite

Gehen Sie nach dem Installationsvorgang zu Ihrem Terminalfenster, um zu sehen, ob die Docker Engine betriebsbereit ist, und geben Sie den folgenden Befehl ein:

 docker --version
Überprüfen Sie die installierte Version von Docker
Docker-Version installiert

Geben Sie dann Folgendes ein: docker-compose --version .

Überprüfen Sie die mit Docker installierte Version von Compose
Compose mit Docker installiert

Compose ist ein Tool zum Definieren und Ausführen von Docker-Anwendungen mit mehreren Containern mithilfe von YAML-Dateien, die Sie zum Konfigurieren von Anwendungsdiensten verwenden.

Sie können ein Dockerized Redis ausführen, um zu überprüfen, ob die Docker-Engine mit dem folgenden Code ausgeführt wird. Dieses Beispiel führt das Redis-Image von Docker Hub aus und nennt es my-redis-container .

 docker run --name my-redis-container -d redis
Führen Sie das Redis-Image von Docker Hub mit dem Namen my-redis-container aus
Redis-Image von Docker Hub namens my-redis-container

Da Sie das Image nicht lokal haben, zieht Docker das Redis-Image aus dem Docker-Hub.

Jetzt können Sie Docker Desktop öffnen, um zu bestätigen, dass das Redis-Image gezogen wurde. Klicken Sie im Dashboard im linken Bereich auf Bilder .

Stellen Sie sicher, dass Ihr Redis-Image über Docker Desktop ausgeführt wird
Docker-Desktop

Jetzt können Sie ein Netzwerk erstellen. Beachten Sie, dass der Docker-Treiber die Bridge oder die integrierten Overlay-Netzwerktreiber verwendet, um ein Docker-Netzwerk zu erstellen. Sie können auch einen Netzwerktreiber eines Drittanbieters installieren und verwenden.

Der Unterschied besteht darin, dass Bridge-Netzwerke auf einer einzelnen Docker-Engine-Installation isoliert sind, während Overlay-Netzwerke mehrere Docker-Hosts umfassen, auf denen jeweils eine Engine ausgeführt wird.

Typ:

 docker network create -d bridge kinsta-demo-network
Erstellen Sie mit dem Bridge-Treiber ein neues Docker-Netzwerk
Docker-Netzwerk mit dem Bridge-Treiber

Wenn Sie standardmäßig keine Treiber angeben, verwendet Docker den Bridge-Treiber, um ein neues Netzwerk zu erstellen, da der Bridge-Treiber automatisch erstellt wird, wenn Sie die Docker-Engine installieren. Wenn Sie jedoch einen Docker-Container mit dem Befehl Docker run ausführen, wird dieses Netzwerk nicht verwendet.

Nachdem Sie nun ein Netzwerk haben, ist die Installation von Redis im Docker-Container der nächste Schritt. Geben Sie dazu Folgendes ein: docker pull redis .

Ziehen Sie das Redis-Image aus dem Docker-Hub
Ziehen Sie das Redis-Image aus dem Docker-Hub

Um zu überprüfen, ob das Redis-Image korrekt installiert ist, führen Sie einen der folgenden Befehle aus:

 docker images
 docker image ls
Verfügbare Docker-Images im Terminal des Benutzers auflisten
Verfügbare Docker-Images im Terminal des Benutzers


Als Nächstes erstellen und starten Sie den Redis-Container. Führen Sie dazu den folgenden Befehl aus:
 docker run -it –name dev_kinsta_redis_container -d redis
Erstellen Sie den Docker-Container und führen Sie ihn aus
Docker-Container

Stellen Sie nun sicher, dass Redis im Container ausgeführt wird. Geben Sie dazu Folgendes ein: docker ps .

Stellen Sie sicher, dass Redis in einem Container ausgeführt wird
Stellen Sie sicher, dass Redis in einem Container ausgeführt wird

Nachdem Sie nun bestätigt haben, dass Ihr Docker-Container betriebsbereit ist, können Sie den Container zum Netzwerk hinzufügen. Typ: docker network connect .

Fügen Sie dem erstellten Docker-Netzwerk einen Docker-Container hinzu
Fügen Sie dem erstellten Docker-Netzwerk einen Docker-Container hinzu

Wenn alles wie erwartet funktioniert, besteht der nächste Schritt darin, zu überprüfen, ob Ihr Redis-Server, der in Docker ausgeführt wird, bereit ist, Verbindungen zu akzeptieren. Verwenden Sie dazu docker logs .

Stellen Sie sicher, dass das Redis-Image im Docker-Container ausgeführt wird
Stellen Sie sicher, dass das Redis-Image im Docker-Container ausgeführt wird

Als Nächstes müssen Sie eine Datenbank erstellen, da Sie eine Möglichkeit benötigen, eine Verbindung zum Redis-Container herzustellen, um Befehle auf dem Server auszuführen. Geben Sie dazu Folgendes ein: docker exec -it bash . Sie können den Containernamen und die Container-ID austauschbar verwenden.

Stellen Sie eine Verbindung zur Redis-Containerinstanz her
Stellen Sie eine Verbindung zur Redis-Containerinstanz her.

Verwenden Sie im Container die CLI, um Befehle auszuführen. Beachten Sie, dass Redis Docker-Hosts automatisch installiert. Um die Redis-CLI zu verwenden, geben Sie Folgendes ein: redis-cli .

Verwenden Sie die Redis-CLI, um Redis-Befehle auszuführen
Verwenden Sie die Redis-CLI, um Redis-Befehle auszuführen

Dadurch werden Sie mit dem Standardport für Redis auf dem lokalen Host verbunden. Geben Sie ein: ping , und die Antwort sollte pong sein.

Testen Sie, ob die Redis-Verbindung betriebsbereit ist
Testen Sie, ob die Redis-Verbindung betriebsbereit ist

Wählen Sie als Nächstes eine Datenbank auf Ihrem Redis-Server aus, indem Sie select eingeben. Obwohl die Standarddatenbank 0 ist, wählen Sie db 1 aus.

Wählen Sie eine bestimmte Redis-Datenbank aus
Wählen Sie eine bestimmte Redis-Datenbank aus

Als nächstes fügen Sie Daten in die Datenbank ein. Verwenden Sie den Redis SET Befehl. Geben Sie dazu SET <key> <value> ein.

Zum Beispiel:

 SET mykey "Hello"

Um denselben Schlüssel zu erhalten, geben Sie Folgendes ein:

 get myKey
Einfügen und Abrufen von Daten aus Redis
Einfügen und Abrufen von Daten aus Redis

Um den Wert für den Schlüssel abzurufen, führen Sie get aus. Dies gibt den Wert zurück. Überwachen Sie als Nächstes Ihre Redis-Datenbank, indem Sie MONITOR eingeben.

Überwachen Sie die Redis-Datenbank
Überwachen Sie die Redis-Datenbank

Halten Sie schließlich den Redis-Server an, indem Sie die CLI verlassen. Geben Sie zweimal exit , um die CLI und Redis zu beenden.

Beenden Sie die Redis-CLI
Beenden Sie die Redis-CLI

Stoppen Sie schließlich die Ausführung des Redis-Containers, indem Sie docker stop eingeben.

Führen Sie den Befehl aus, um die Ausführung des Docker-Containers zu stoppen
Führen Sie den Befehl aus, um die Ausführung des Docker-Containers zu stoppen

Redis mit DevKinsta

Mit DevKinsta können Sie eine WordPress-Site mit einer Redis-Datenbank verbinden. Mit DevKinsta funktioniert das Redis-Add-On nahtlos als Objekt-Cache, um Daten über mehrere Seitenladevorgänge hinweg zu speichern. Das bedeutet, dass Sie mit dem Redis-Add-On den Cache verwenden können, um Objekte wiederzuverwenden, anstatt ständig die MySQL-Datenbank abzufragen.

Installieren Sie nach dem Herunterladen und Einrichten von DevKinsta den Docker-Desktop als Abhängigkeit, den es verwendet, um lokale Umgebungsdateien in einem Container zu erstellen. Mit diesem Setup können Sie das Redis-Add-on in Devkinsta konfigurieren.

Daher kann das Redis-Add-on für DevKinsta als sekundäre Quelle verwendet werden, wodurch die Belastung der primären Datenbank verringert, die Reaktionszeiten erhöht und die Anwendung schneller arbeiten.

Dies führt dazu, dass die App mehr Last handhabt und effizienter skaliert. Sehen Sie sich diesen Beitrag an, um das Redis-Plugin mit Ihrer Website zu verwenden.

Redis + Docker = eine himmlische Kombination! Hier erfahren Sie, warum die Containerisierung der Redis-App der richtige Weg ist und wie Sie das Beste daraus machen. Zum Twittern klicken

Zusammenfassung

Es gibt viele Vorteile, Redis in einem Docker-Container auszuführen. Es bietet eine Sandbox-Umgebung für Ihre Anwendungen, sodass Sie sich nicht mehr um die Plattform kümmern müssen, auf der Sie Ihre Anwendungen bereitstellen. Darüber hinaus ermöglicht Docker Benutzerfreundlichkeit, Flexibilität und hohe Zuverlässigkeit.

In Bezug auf die Sicherheit können Sie mit Synk, einem Tool, das Einblick in die Sicherheit von Docker-Images bietet, sofort nach Sicherheitslücken suchen und diese scannen. Und in Bezug auf die Flexibilität funktioniert Docker für die meisten Unix-basierten und Windows-Betriebssysteme und -Anwendungen. Diese Flexibilität bedeutet, dass dockerisierte oder containerisierte Apps oder Dienste unabhängig vom Betriebssystem immer ausgeführt werden.

Es ist einfach, Docker und das Redis-Add-on mit DevKinsta zu verwenden, das beim Start lokal eine dockerisierte WordPress-Site hochfährt. Schauen Sie sich DevKinsta und das Redis-Add-on an, um noch heute die Leistungsfähigkeit von Redis in Docker zu nutzen.