Wie und warum Redis in Docker ausgeführt wird
Veröffentlicht: 2023-05-02Redis 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
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.
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.
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
Geben Sie dann Folgendes ein: docker-compose --version
.
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
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 .
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
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
.
Um zu überprüfen, ob das Redis-Image korrekt installiert ist, führen Sie einen der folgenden Befehle aus:
docker images
docker image ls
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
Stellen Sie nun sicher, dass Redis im Container ausgeführt wird. Geben Sie dazu Folgendes ein: docker ps
.
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
.
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
.
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.
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
.
Dadurch werden Sie mit dem Standardport für Redis auf dem lokalen Host verbunden. Geben Sie ein: ping
, und die Antwort sollte pong
sein.
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.
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
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.
Halten Sie schließlich den Redis-Server an, indem Sie die CLI verlassen. Geben Sie zweimal exit
, um die CLI und Redis zu beenden.
Stoppen Sie schließlich die Ausführung des Redis-Containers, indem Sie docker stop
eingeben.
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.
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.