GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

MySQL-Docker-Container-Tutorial:Einrichtung und Konfiguration

Einführung

MySQL ist ein bekanntes relationales Open-Source-Datenbankverwaltungssystem und eine der beliebtesten Webserver-Lösungen. Es speichert und strukturiert Daten auf sinnvolle Weise und gewährleistet eine einfache Zugänglichkeit.

Docker ist eine Reihe von Platform-as-a-Service-Produkten, die die CI/CD-Entwicklung unterstützen. Es ermöglicht Benutzern, Anwendungen in virtuellen Umgebungen, sogenannten Containern, zu entwickeln und bereitzustellen. Mit einem einzigen Image kann Docker eine Anwendung mit all ihren Bibliotheken und Abhängigkeiten starten.

In diesem Tutorial erfahren Sie, wie Sie einen MySQL-Docker-Container bereitstellen und mit der containerisierten Datenbank arbeiten.

Voraussetzungen

  • Zugriff auf ein Befehlszeilen-/Terminalfenster
  • Ein Benutzerkonto mit sudo Privilegien oder Zugriff auf das Stammverzeichnis Konto
  • Eine vorhandene Docker-Installation

Ausführen eines MySQL-Docker-Containers

Wenn Sie eine Datenbank schnell und ohne zu viele Ressourcen einrichten müssen, stellen Sie MySQL in einem Container bereit ist eine schnelle und effiziente Lösung. Dies ist nur für kleine und mittlere Anwendungen geeignet. Anwendungen auf Unternehmensebene würden keinen MySQL-Docker-Container finden ausreichend für ihre Arbeitsbelastung.

Die Verwendung der Docker-Software zum Einrichten Ihrer Datenbank wird für kleine Apps immer beliebter. Anstatt einen separaten Server für das Datenbankhosting zu haben, können Sie einen MySQL-Datenbankcontainer bereitstellen.

Auf Ihrem Computer können mehrere Container ausgeführt werden. Die Container teilen sich den gleichen Kernel und die gleichen Bibliotheken des Hosts, während sie die bereitgestellte Anwendung oder Software in einzelne Einheiten packen. Dadurch ist die Datenbank außerordentlich leichtgewichtig und lässt sich schnell hochfahren.

Installieren eines MySQL-Docker-Containers

Das Einrichten einer Datenbank in Docker ist einfach das Erstellen eines Containers basierend auf einem MySQL-Image. Befolgen Sie die unten aufgeführten Schritte, um Ihren MySQL-Container zum Laufen zu bringen.

Schritt 1:Ziehen Sie das MySQL-Docker-Image herunter

1. Ziehen Sie zunächst das entsprechende Docker-Image für MySQL. Sie können eine bestimmte Version herunterladen oder sich für die neueste Version entscheiden, wie im folgenden Befehl gezeigt:

sudo docker pull mysql/mysql-server:latest

Wenn Sie eine bestimmte Version von MySQL wünschen, ersetzen Sie latest mit der Versionsnummer.

2. Vergewissern Sie sich, dass das Image jetzt lokal gespeichert ist, indem Sie die heruntergeladenen Docker-Images auflisten:

sudo docker images

Die Ausgabe sollte mysql/mysql-server enthalten unter den aufgelisteten Bildern.

Schritt 2:Stellen Sie den MySQL-Container bereit

1. Sobald Sie das Image haben, fahren Sie mit der Bereitstellung eines neuen MySQL-Containers fort mit:

sudo docker run --name=[container_name] -d [image_tag_name]
  • Ersetzen Sie [container_name] mit dem Namen Ihrer Wahl. Wenn Sie keinen Namen angeben, generiert Docker einen zufälligen.
  • Das -d -Option weist Docker an, den Container als Dienst im Hintergrund auszuführen.
  • Ersetzen Sie [image_tag_name] mit dem Namen des in Schritt 1 heruntergeladenen Bildes.

In diesem Beispiel erstellen wir einen Container namens mysql_docker mit dem latest Versions-Tag:

sudo docker run --name=[container_name] -d mysql/mysql-server:latest

2. Überprüfen Sie dann, ob der MySQL-Container ausgeführt wird:

docker ps

Sie sollten den neu erstellten Container in der Ausgabe aufgelistet sehen. Es enthält Containerdetails, darunter den Status dieser virtuellen Umgebung. Der Status ändert sich von health: starting auf healthy , sobald die Einrichtung abgeschlossen ist.

Schritt 3:Verbinden Sie sich mit dem MySQL-Docker-Container

1. Bevor Sie den MySQL-Server-Container mit dem Host verbinden können, müssen Sie sicherstellen, dass das MySQL-Client-Paket installiert ist:

apt-get install mysql-client

2. Öffnen Sie dann die Protokolldatei für den MySQL-Container, um das generierte Root-Passwort zu finden:

sudo docker logs [container_name]

Für mysql_docker Container führen wir aus:

sudo docker logs mysql_docker

3. Scrollen Sie durch die Ausgabe und suchen Sie die Zeile [Entrypoint] GENERATED ROOT PASSWORD :, kopieren Sie das Passwort und fügen Sie es in einen Notizblock oder Texteditor ein, damit Sie es später verwenden können.

4. Gehen Sie als Nächstes zur Bash-Shell des MySQL-Containers, indem Sie Folgendes eingeben:

sudo docker exec -it [container_name] bash

Für den als Beispiel erstellten Container führen wir aus:

sudo docker -it mysql_docker bash

3. Geben Sie bei Aufforderung das Root-Passwort ein, das Sie aus der Protokolldatei kopiert haben. Damit haben Sie den MySQL-Client mit dem Server verbunden.

4. Ändern Sie abschließend das Server-Root-Passwort, um Ihre Informationen zu schützen:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[newpassword]';

Ersetzen Sie [newpassword] mit einem sicheren Passwort Ihrer Wahl.

MySQL-Container konfigurieren

Wenn Sie einen MySQL-Container installieren, finden Sie seine Konfigurationsoptionen in /etc/mysql/my.cnf= Verzeichnis.

Wenn Sie die Konfiguration ändern müssen, erstellen Sie eine alternative Konfigurationsdatei auf dem Hostcomputer und hängen Sie sie in den Container ein.

1. Erstellen Sie zunächst ein neues Verzeichnis auf dem Hostcomputer:

sudo mkdir -p /root/docker/[container_name]/conf.d

2. Erstellen Sie eine benutzerdefinierte MySQL-Konfigurationsdatei in diesem Verzeichnis:

sudo nano /root/docker/[container_name]/conf.d/my-custom.cnf

3. Sobald Sie sich in der Datei befinden, können Sie Zeilen mit der gewünschten Konfiguration hinzufügen.

Wenn Sie beispielsweise die maximale Anzahl von Verbindungen auf 250 (anstelle der standardmäßigen 151) erhöhen möchten, fügen Sie der Konfigurationsdatei die folgenden Zeilen hinzu:

[mysqld]
max_connections=250

4. Speichern und beenden Sie die Datei.

5. Damit die Änderungen wirksam werden, müssen Sie den MySQL-Container entfernen und erneut ausführen . Dieses Mal verwendet der Container eine Kombination aus Konfigurationseinstellungen aus der neu erstellten Datei und den Standardkonfigurationsdateien.

Führen Sie dazu den Container aus und ordnen Sie den Volume-Pfad mit dem folgenden Befehl zu:

docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=[my_password]" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
mysql

6. Um zu überprüfen, ob der Container die Konfiguration vom Host geladen hat, führen Sie den folgenden Befehl aus:

mysql -uroot -pmypassword -h127.0.0.1 -P6603 -e 'show global variables like "max_connections"';

Sie sollten sehen, dass die maximale Anzahl von Verbindungen jetzt 250 beträgt .

Datenspeicherung verwalten

Standardmäßig speichert Docker Daten auf seinem internen Volume.

Verwenden Sie den folgenden Befehl, um den Speicherort der Volumes zu überprüfen:

sudo docker inspect [container_name]

Sie sehen /var/lib/mysql im internen Volume montiert.

Sie können auch den Speicherort des Datenverzeichnisses ändern und erstellen Sie eine auf dem Host. Durch ein Volume außerhalb des Containers können andere Anwendungen und Tools bei Bedarf auf die Volumes zugreifen.

1. Suchen Sie zunächst ein geeignetes Volume auf dem Host und erstellen Sie darauf ein Datenverzeichnis:

sudo mkdir -p /storage/docker/mysql-data

2. Starten Sie nun den Container erneut und mounten Sie das zuvor erstellte Verzeichnis:

docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=my_password" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
--volume=/storage/docker/mysql-data:/var/lib/mysql \
mysql

Wenn Sie den Container untersuchen, sollten Sie sehen, dass der MySQL-Container seine Daten jetzt auf dem Hostsystem speichert. Führen Sie den Befehl aus:

sudo docker inspect [container_name]

MySQL-Container starten, stoppen und neu starten

Der Container stoppt automatisch, wenn der darin ausgeführte Prozess stoppt.

Zum Starten des MySQL-Containers ausführen:

sudo docker start [container_name]

Beenden Sie den MySQL-Container , verwenden Sie den Befehl:

sudo docker stop [container_name]

Um den MySQL-Container neu zu starten ausführen:

sudo docker restart [container_name]

MySQL-Container löschen

Stellen Sie vor dem Löschen eines MySQL-Containers sicher, dass Sie ihn zuerst stoppen.

Entfernen Sie dann den Docker-Container mit:

sudo docker rm [container_name]

Ubuntu
  1. So installieren und konfigurieren Sie mysql 8 unter Ubuntu 20.04

  2. So führen Sie MySQL in einem Docker-Container aus

  3. Wie man SSH in einen Docker-Container einfügt

  4. So weisen Sie einem Docker-Container eine statische IP zu

  5. So installieren Sie Vim in einem Docker-Container

So installieren Sie den Ubuntu 22.04 LTS-Container auf Docker

So installieren und konfigurieren Sie MySQL unter Ubuntu 18.04

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So richten Sie Pihole in einem Docker-Container ein

So richten Sie einen Apache Docker-Container ein