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

So führen Sie MySQL im Docker-Container aus:Eine einfache, leicht verständliche Anleitung

Diese Anleitung erklärt Schritt für Schritt, wie Sie in nur wenigen Minuten einen neuen MySQL-Server einrichten, der im Docker-Container läuft.

Eines der großartigen Dinge an Docker ist, dass Sie es schnell verwenden können, um Anwendungen auszuprobieren, ohne es direkt auf Ihrem Computer zu installieren. Beispielsweise können Sie Docker verwenden, um eine Datenbank in einem Container als Remote-Server auszuführen und zu testen, wie Ihre Anwendung damit interagiert.

Das Ausführen von MySQL mit Docker-Containern ist ein weit verbreiteter Mechanismus. MySQL ist eine der beliebtesten Datenbanken, die mit Docker-Containern verwendet wird.

Um MySQL als Docker-Container zu erstellen, sollte Docker auf dem Hostcomputer installiert sein. Wenn Sie es nicht installiert haben, finden Sie hier eine Schritt-für-Schritt-Anleitung zur Installation von Docker in Ubuntu.

1. Ziehen Sie das MySQL-Docker-Image

Das erste, was Sie tun müssen, um den MySQL-Server in Docker zu erstellen und zu testen, ist, ein offizielles MySQL-Image aus Docker Hub abzurufen.

Sie können eine bestimmte Version herunterladen, z. B. 8.0, 5.7, 5.6, oder sich für die neueste Version entscheiden, wie im folgenden Befehl gezeigt:

sudo docker pull mysql:latest

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

Sie können die docker images ausführen Befehl, um eine Liste der Docker-Images anzuzeigen, die Sie aus dem Docker-Hub gezogen haben.

sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    2fe463762680   13 hours ago   514MB

Wie Sie sehen können, steht das MySQL-Image jetzt unserem lokal installierten Docker zur Verfügung.

2. Einrichten eines Docker-Volumes

Wie Sie wissen, sind Docker-Container im Prinzip temporär, und alle Daten oder Konfigurationen gehen voraussichtlich verloren, wenn der Container gelöscht wird.

Docker-Volumes bieten jedoch einen Mechanismus zum Persistieren von Daten, die in einem Docker-Container erstellt wurden. Daher sind sie Dockers bevorzugter Mechanismus zum Speichern persistenter Daten von Docker-Containern.

MySQL speichert seine Datendateien im Verzeichnis /var/lib/mysql Verzeichnis. Vor der Bereitstellung müssen Sie also ein Docker-Volume einrichten, um Ihre Datenbank zu speichern. Andernfalls gehen Ihre Daten beim Neustart des Containers verloren.

Lassen Sie uns ein neues Volume erstellen und es mysql-data nennen . Es wird verwendet, um alle Ihre Datenbankinformationen zu speichern.

sudo docker volume create mysql-data

Sie können alle Docker bekannten Volumes auflisten, indem Sie den folgenden Befehl ausführen:

sudo docker volume ls
DRIVER    VOLUME NAME
local     mysql-data

Wie Sie sehen können, hat unser neu erstelltes Docker-Volume den Namen mysql-data ist hier und bereit, Daten bereitzustellen. Es kann dann an einen frisch gesponnenen MySQL-Container angehängt werden.

3. Ausführen eines MySQL-Docker-Containers

Nachdem Sie nun ein MySQL-Docker-Image auf Ihrem Computer und ein Volume zum Speichern der Daten haben, können Sie einen Container bereitstellen. Sie müssen auch ein Passwort für den MySQL-Root-Benutzer festlegen, indem Sie MYSQL_ROOT_PASSWORD verwenden Umgebungsvariable.

Lassen Sie uns nun den Container ausführen:

sudo docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql

Das ist es. Dadurch wird die neueste Version der MySQL-Instanz gestartet, auf die mit dem angegebenen Root-Passwort von überall aus remote zugegriffen werden kann.

Um die Dinge transparenter zu machen, lassen Sie uns diese Syntax aufschlüsseln. Zuerst ist hier, was jeder Parameter in diesem Befehl bedeutet:

  • -d führt diesen Container in einem getrennten Modus aus, sodass er im Hintergrund ausgeführt wird.
  • --name weist den Namen mysql-server zu zu Ihrer Containerinstanz. Wenn Sie dies nicht angeben, generiert Docker einen zufälligen Namen.
  • -p bindet den MySQL-Container-Port 3306 an denselben Port auf Ihrem Hostcomputer. Sie können eine Verbindung zu 127.0.0.1 herstellen auf Port 3306 Verwendung von MySQL-Clients (mysql ), die auf Ihrem Host ausgeführt werden.
  • -v Option bindet diesen Datenordner innerhalb des Container-Volumes (/var/lib/mysql ) auf das lokale Docker-Volume (mysql-data ), die Sie im vorherigen Schritt erstellt haben.
  • -e setzt eine Umgebungsvariable. In diesem Fall das MySQL-Root-Passwort.
  • mysql ist der Name des Images, das wir verwenden, um den Container zu erstellen.

Sie können überprüfen, ob der Container läuft, indem Sie die laufenden Container auflisten:

sudo docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
0fc229e3df77   mysql     "docker-entrypoint.s…"   37 minutes ago   Up 34 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-server

4. Herstellen einer Verbindung zum MySQL Container

Sie können eine interaktive MySQL-Shell erhalten, indem Sie sie an den Container anhängen und mysql ausführen Befehl. Dies stellt die vollständige MySQL-Befehlszeilenschnittstelle bereit, um alle vertrauten Befehle und Flags zu verwenden.

sudo docker exec -it mysql-server mysql -u root -p

Sie können sich auch über mysql mit der MySQL-Docker-Instanz verbinden Client, wenn Sie ihn auf Ihrem Host vorinstalliert haben.

Beachten Sie, dass der MySQL-Client standardmäßig versucht, eine Verbindung über einen UNIX-Socket herzustellen, wenn Sie ihn anweisen, eine Verbindung zu localhost herzustellen . Verwenden Sie also 127.0.0.1 und nicht localhost .

mysql -u root -h 127.0.0.1 -p

Natürlich können Sie auch einen GUI-basierten Client wie MySQL Workbench verwenden, um sich mit der Datenbank zu verbinden. Geben Sie beispielsweise in Ihrer MySQL Workbench für „Hostname“ die IP-Adresse der Maschine an, auf der Sie den Docker-Container gestartet haben.

Natürlich können Sie in den oben gezeigten Beispielen für einen Hostnamen die IP-Adresse der Maschine verwenden, auf der der MySQL-Docker-Container arbeitet, anstatt 127.0.0.1.

Sie finden diese Adresse, indem Sie ifconfig ausführen Befehl ohne Argumente.

Mit der IP-Adresse des Rechners können Sie remote auf den MySQL-Server zugreifen.

5. MySQL-Container stoppen, starten und neu starten

Dieser Befehl wird vorübergehend gestoppt der laufende MySQL-Container (und kann später fortgesetzt/neu gestartet werden):

sudo docker stop mysql-server

Zum Start Führen Sie im MySQL-Container Folgendes aus:

sudo docker start mysql-server

Der folgende Befehl wird zum Neustart verwendet der laufende MySQL-Container:

sudo docker restart mysql-server

Schlussfolgerung

Wie Sie sehen können, ist die Ausführung von MySQL in Docker viel schneller und einfacher als die lokale Installation von MySQL Server. Es gibt jedoch noch viele weitere Dinge zu beachten, wenn Sie MySQL auf Docker für andere Zwecke als zum Testen verwenden möchten.

Weitere Informationen finden Sie auf der MySQL-Seite auf Docker Hub und im offiziellen MySQL-Handbuch zu diesem Thema.

Lassen Sie mich wissen, wenn Sie Fragen oder Anregungen haben. Ich melde mich gerne bei Ihnen.


Docker
  1. So installieren Sie WordPress mit Docker, eine leicht verständliche Anleitung

  2. Wie führe ich ein Programm in einem Docker-Container aus?

  3. So führen Sie einen Befehl in einem laufenden Docker-Container aus

  4. So erstellen Sie einen MySQL-Docker-Container zum Testen

  5. Wie füge ich Benutzer zum Docker-Container hinzu?

Wie man SSH in einen Docker-Container einfügt und Befehle ausführt

So führen Sie NGINX in Docker aus (für einfache automatische Skalierung)

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

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

So erstellen Sie Docker-Volumes unter Windows auf einfache Weise

So führen Sie Docker-Container aus