GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Stellen Sie eine Produktions-Docker-MariaDB-Installation bereit

Wenn Sie vorhaben, MariaDB auf Ihrem System zu installieren, möchten Sie es möglicherweise vom Rest des Systems isolieren, damit Sie nichts kaputt machen. Zugegeben, Sie können eine virtuelle Maschine verwenden, aber es würde viele Ressourcen erfordern, da Sie ein ganzes System übereinander installieren müssen. Warum also nicht Docker für MariaDB bereitstellen?

Wenn Sie nur begrenzte Hardware haben, kein Problem, Docker kann helfen! Docker ist eine leichtgewichtige Virtualisierungslösung. Und in diesem Tutorial erfahren Sie, wie Sie eine Produktions-Docker für MariaDB-Serverinstallation in einem Docker-Container mit weniger Ressourcenverbrauch bereitstellen.

Lesen Sie weiter und verschwenden Sie nie wieder Ihre Ressourcen!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben.

  • Ein Linux-Rechner – Diese Demo verwendet Ubuntu 20.04 LTS, aber alle Linux-Distributionen funktionieren.
  • Docker auf Ihrem Computer installiert.
  • Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.

Arbeiten mit MariaDB-Docker-Image

Der beste Weg, um mit MariaDB auf Ihrem Computer zu arbeiten, ist die Verwendung des offiziellen Docker-Images für MariaDB. Das Image enthält eine Installation der neuesten stabilen Version von MariaDB sowie einige Skripte, die Ihnen bei der Verwaltung des Containers helfen.

1. Führen Sie das apt update aus Befehl unten, um sicherzustellen, dass Ihr System auf dem neuesten Stand ist. Dieser Befehl ruft die neuesten Paketlisten aus den Repositories von Ubuntu ab und installiert alle verfügbaren Pakete.

sudo apt update -y

2. Als nächstes führen Sie systemctl aus Befehl unten, um den docker zu starten Service.

sudo systemctl start docker

Das Starten des Docker-Dienstes liefert keine Ausgabe. Wenn Sie jedoch Docker-bezogene Befehle ausführen, während Docker nicht ausgeführt wird, erhalten Sie die folgende Fehlermeldung.

3. Führen Sie den docker status aus Befehl unten, um sicherzustellen, dass der docker Dienst läuft.

 sudo service docker status 

Unten sehen Sie, dass der Docker-Dienst aktiv ist (wird ausgeführt).

4. Führen Sie abschließend gpasswd aus Befehl unten, um Ihren aktuellen Benutzer zum Docker hinzuzufügen Gruppe. Dadurch kann der Benutzer docker ausführen Befehle.

sudo gpasswd -a "${USER}" docker

Hinzufügen des aktuellen Benutzers zum Docker Gruppe bewahrt Sie vor dem folgenden Fehler, wenn Sie einen Docker-Befehl ausführen.

5. Führen Sie die folgende docker search aus Befehl, um nach dem MariaDB-Image zu suchen. Dieser Befehl durchsucht den Docker Hub (offizieller Satz von Repositorys) nach Bildern, die mit mariadb übereinstimmen und gibt die Ergebnisse zurück.

sudo docker search mariadb

Markieren Sie jedes Image, das Sie zur Installation von MariaDB verwenden möchten. Diese Demo verwendet das offizielle Image namens mariadb, weil es gut gewartet wird.

Die Spalte OFFIZIELL zeigt einen OK-Status, wenn ein Bild offiziell ist. Wenn das Bild nicht den OK-Status hat, wird das Bild von einem Community-Entwickler beigetragen. In diesem Fall müssen Sie sich an den Entwickler wenden, wenn Sie Probleme mit dem Bild haben.

6. Führen Sie nun den docker pull aus Befehl, um das (in Schritt fünf) ausgewählte Image aus dem Docker-Repository herunterzuladen. Dieser Befehl lädt (pull ) das ausgewählte Bild aus seinem offiziellen Repository und speichert es auf Ihrem lokalen Computer.

sudo docker pull mariadb

Wenn der Befehl abgeschlossen ist, erhalten Sie die neueste stabile Version des MariaDB-Images auf Ihrem Server, wie unten gezeigt.

Wenn Sie es vorziehen, frühere Versionen zu installieren, können Sie die für dieses Image verfügbaren Tags verwenden. Navigieren Sie zu Bild-Tag/s -Spalten in Dockerhub, um alle Versionen anzuzeigen, führen Sie dann den Docker-Pull-Befehl aus und geben Sie die genaue Version an, wie unten gezeigt. sudo docker pull mariadb:10.2

7. Führen Sie abschließend die docker images aus Befehl, um alle auf Ihrem Server vorhandenen Bilder aufzulisten. Zu diesem Zeitpunkt sollten Sie ein gültiges MariaDB-Docker-Image auf Ihrem Server haben.

sudo docker images

Unten können Sie sehen, dass mariadb der Name des Docker-Images mit einem Tag als neuestes ist.

Erstellen eines MariaDB-Containers zum Ausführen eines lokalen MariaDB-Servers

Nachdem Sie nun das MariaDB-Image auf Ihrem Server haben, können Sie einen Container mit diesem Image ausführen. Ein Container ist eine isolierte, ressourcengesteuerte und portable Laufzeitumgebung, die auf einem Betriebssystem ausgeführt wird.

Sie müssen zuerst ein neues opt/mariadb/backup erstellen Verzeichnis auf Ihrem Server, um die Sicherungsdatei zu speichern, die Sie in dieser Demo erstellen. Das Sichern Ihrer Daten in Ihrer Produktionsumgebung ist entscheidend, bevor Sie Änderungen vornehmen, falls etwas schief geht.

Wenn Sie das interne Volume eines Containers ändern, wird diese Änderung in das zugeordnete Hostverzeichnis kopiert. Um also eine Sicherungskopie aller Containerdaten zu behalten, erstellen Sie das Volume auf dem lokalen Server.

1. Führen Sie den folgenden Befehl aus, um opt/mariadb/backup zu erstellen Verzeichnis. Das -p Die Option stellt sicher, dass das übergeordnete Verzeichnis vorhanden ist, bevor dieses Verzeichnis erstellt wird.

Wenn eines der übergeordneten Verzeichnisse im Pfad nicht existiert, schlägt der Befehl fehl.

sudo mkdir -p opt/mariadb/backup

2. Führen Sie als nächstes den docker run aus Befehl unten, um einen Docker-Container aus der mariadb zu erstellen Bild. Dieser Befehl führt Folgendes aus:

  • Karten (-v ) das Standardverzeichnis für die MariaDB-Daten (/var/lib/mysql ) in Ihrem Docker-Container in Ihrem Hostverzeichnis (/opt/mariadb/backup ).
  • Deklariert die MariaDB-Umgebungsvariable (-e ) MYSQL_ROOT_PASSWORD um das Root-Passwort für den MariaDB-Server zu speichern. Achten Sie darauf, ata123 zu ersetzen mit Ihrem sicheren Passwort.
  • Teilt Docker mit, den Container im getrennten Modus zu starten (-d ), sodass der Container im Hintergrund ausgeführt wird. Dadurch können Sie die aktuelle Sitzung verlassen und weiterarbeiten, während dieser Container im Hintergrund ausgeführt wird. Wenn nicht, erhalten Sie eine leere Eingabeaufforderung und müssen den laufenden Container beenden.
  • Gibt den Namen des Containers an (--name mariadbata ) erschaffen. Sie können mariadbata ersetzen mit Ihrem eindeutigen Wunschnamen.
  • Stellt den Standard-MariaDB-Port 3306 für den Host-Rechner bereit (-p 3306:3306 ) (wo der MariaDB-Dienst Ihre Client-Verbindungen abhört). Im Fall des Produktionsservers ordnen Sie den Standardport dem Produktionsport zu. Aber Sie können 3306 ersetzen mit einer anderen Produktionsportnummer.
sudo docker run --name mariadbata -p 3306:3306 -v /opt/mariadb/backup:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ata123 -d mariadb

Zu diesem Zeitpunkt wird der Container erstellt und im Hintergrund ausgeführt, aber Sie können sich nie sicher sein. Daher verifizieren Sie den Container im nächsten Schritt.

3. Führen Sie docker ps aus Befehl, um zu überprüfen, ob Ihr Docker-Container aktiv ist oder nicht.

sudo docker ps

Sie können unten sehen, dass der Container „mariadbata“ seit 7 Minuten aktiv ist und Port 3306 auf allen Hostschnittstellen abhört. Sie können auch die ID (3a7fa779b559) des Containers sehen.

Sie können diese eindeutige ID verwenden, um eine Verbindung zum Container herzustellen, Container aufzulisten, Container zu stoppen oder den Container zu löschen.

4. Führen Sie nun docker exec aus Befehl unten, um die Version des MariaDB-Servers in mariadbata zu überprüfen Container.

sudo docker exec -it mariadbata mysql -V

Zum Zeitpunkt des Schreibens ist die neueste Version von mariadb 10.6.5, wie unten gezeigt, und Ihre Version kann anders sein. Da MariaDB ein Fork von MySQL ist, hat Docker den mysql-Client als Standardclient verwendet, um mit dem unten gezeigten MariaDB-Dienst zu interagieren.

5. Führen Sie den folgenden Befehl aus, um die MariaDB-Shell aufzurufen (/bin/bash ).

sudo docker exec -it mariadbata /bin/bash

Die Eingabeaufforderung ändert sich von der Ubuntu-Shell zur MariaDB-Shell, wie unten gezeigt.

Unten sehen Sie die Container-ID (3a7fa779b559), die Sie in Schritt drei gesehen haben. Die Container-ID in der Eingabeaufforderung zeigt an, dass Sie sich derzeit im Container „mariadbata“ befinden.

Wenn Sie sich im Container befinden, können Sie alle Befehle mit dem Präfix sudo ausführen, da Sie jetzt der Root-Benutzer dieses Containers sind.

Beispielsweise können Sie den folgenden Befehl apt update ausführen, um die Paketdatenbank im Container ohne das Präfix sudo zu aktualisieren.

apt update -y

6. Führen Sie abschließend den exit aus Befehl, um die MariaDB-Shell zu verlassen und zu Ihrer Ubuntu-Host-Shell zurückzukehren.

exit

Zugriff auf MariaDB Shell vom Host-Terminal

Sie können auch direkt vom Host-Terminal auf die MariaDB-Shell zugreifen, indem Sie den MariaDB-Client auf dem Host installieren. Dies ist in Situationen hilfreich, in denen Sie nicht jedes Mal zur Container-Shell wechseln möchten.

1. Führen Sie apt install aus Befehl unten, um den MariaDB-Client auf Ihrem Ubuntu-Host zu installieren.

sudo apt install -y mariadb-client

2. Führen Sie als Nächstes docker inspect aus Befehl unten, um die IP-Adresse des laufenden Containers zu finden.

sudo docker inspect container-name | grep IPAddress

3. Führen Sie nun mysql aus Befehl unten, um von Ihrem Host aus eine Verbindung zur Datenbankinstanz herzustellen (-h ) mit Ihrem Benutzernamen (root ) und Passwort (-p ). Denken Sie daran, host_ip zu ersetzen mit der IP-Adresse Ihres laufenden Docker-Containers.

sudo mysql -u root -p -h host_ip

4. Geben Sie das zuvor eingerichtete Passwort ein (ata123 ) in Schritt zwei, wenn Sie dazu aufgefordert werden, und Sie erhalten die MariaDB-Client-Eingabeaufforderung, wie unten gezeigt.

Sie können dann jeden SQL-Code ausführen, den Sie zum Ausführen auf dem MariaDB-Server benötigen.

5. Führen Sie schließlich ls aus Befehl unten, um die Sicherungsdateien aufzulisten (opt/mariadb/backup ) des MariaDB-Containers.

ls -l opt/mariadb/backup

Unten sehen Sie eine Liste ähnlicher Dateien. Die Ausgabe zeigt an, dass Sie erfolgreich eine Sicherung des Containers „mariadbata“ erstellt haben. Sie können die Dateien bei Bedarf an einen anderen Speicherort auf Ihrem Host kopieren.

Stoppen und Entfernen des Containers

Vielleicht möchten Sie RAM- oder CPU-Ressourcen freigeben. Wenn dies der Fall ist, können Sie den Container stoppen, indem Sie docker stop ausführen Befehl und geben Sie entweder die Container-ID oder den Containernamen an.

1. Führen Sie einen der folgenden Befehle aus, um einen bestimmten Container zu stoppen.

# Stops Container by Container Name (mariadbata)
sudo docker stop mariadbata
# Stops Container by Container ID (3a7fa779b559)
sudo docker stop 3a7fa779b559

An diesem Punkt wird der Container angehalten, lebt aber weiterhin auf Ihrem Host, und die Daten bleiben erhalten.

2. Führen Sie nun docker ps aus Befehl unten, um alle aufzulisten (-a ) Container.

docker ps -a

Wie Sie unten sehen, wird der Container immer noch angezeigt, befindet sich jedoch im Status Beendet, was darauf hinweist, dass der Container angehalten wurde.

3. Führen Sie abschließend den folgenden Befehl aus, um (rm ) der angehaltene Container (mariadbata ). Die Möglichkeit, einen Container zu entfernen, ist praktisch, wenn das Docker-Image möglicherweise nicht Ihren Anforderungen entspricht oder Sie einfach von vorne beginnen möchten.

Beachten Sie, dass Sie den Container zuerst anhalten müssen, bevor Sie ihn mit dem Befehl docker rm entfernen.

sudo docker rm mariadbata

Wenn Sie es vorziehen, den gesamten Container mit seinen Datenmengen zu entfernen, um Ihre Ressourcen zu schonen, hängen Sie die Option -v mit dem sudo-Docker-Befehl wie dem folgenden an.

sudo docker rm -v mariadbata

Führen Sie nun den nachstehenden docker ps-Befehl erneut aus, um alle Container aufzulisten und zu überprüfen, ob der Container vollständig entfernt wurde.

docker ps -a

Wie Sie unten sehen, die mariadbata Container ist mit all seinen Daten verschwunden.

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, einen MariaDB-Docker-Container auf Ihrem Ubuntu-Hostcomputer zu erstellen. Sie haben auch gelernt, wie Sie mithilfe von Datenvolumencontainern einen dauerhaften Speicher für Ihre Docker-Container erstellen, um die Containerdaten zu sichern.

An dieser Stelle können Sie jetzt Ihren eigenen MariaDB-Docker-Container auf Ubuntu erstellen und verwalten.

Warum also nicht mit diesem neu gewonnenen Wissen einen Buddy CI/CD-Workflow mit einem MariaDB Cocker-Container als Datenbank erstellen? Oder sogar einen MariaDB-Dienst für Ihre Anwendungen erstellen?


Docker
  1. Stellen Sie WordPress auf Docker mit Ansible bereit

  2. Stellen Sie Nextcloud auf Docker mit Ansible bereit

  3. Terraform – Bereitstellen von Python Lambda (Container-Image)

  4. Datei aus Docker-Image extrahieren?

  5. So ändern Sie Docker-Images

Docker:Wie man es praktisch nutzt - Teil 3

Eine kurze Einführung in Dockerfile

So stellen Sie Pi-Hole unter Debian 11 bereit

Was ist ein Docker-Image-Manifest?

So reduzieren Sie die Docker-Image-Größe in Docker-Containern

Teilen von Docker-Images auf Docker Hub