Detaillierte Erläuterung der Bereitstellung von MySQL mit Docker (Datenpersistenz)

Detaillierte Erläuterung der Bereitstellung von MySQL mit Docker (Datenpersistenz)

In diesem Artikel wird kurz beschrieben, wie Sie Docker verwenden, um MySQL bereitzustellen und Daten zu speichern. Wir werden das Projekt tutum-docker-mysql verwenden, um einen MySQL-Server zu erstellen, wodurch wir die Zeit sparen, die Docker-Datei neu zu schreiben.

Zuerst führen wir tutum-docker-mysql aus.

docker run -d -p 3306:3306 --name mysql tutum/mysql

Wenn Sie das Tutum/MySQL-Image nicht lokal haben, lädt Docker zuerst sein Image herunter. Dieser Schritt kann einige Zeit dauern. Nachdem die Ausführung abgeschlossen ist, überprüfen wir, ob es so aussehen sollte

tutum-docker-mysql erstellt für unseren Zugriff automatisch ein zufälliges Passwort, das über das Protokoll eingesehen werden kann.

Wir melden uns bei MySQL über das Passwort im Protokoll an

mysql -uadmin -pi6k5USp9Km9G -h127.0.0.1

Theoretisch haben wir uns an dieser Stelle erfolgreich bei MySQL angemeldet. Sie können eine Datenbank und eine Tabelle erstellen und dann beenden. Aber wenn der Container gestoppt und neu gestartet wird, gehen Ihre Daten verloren. Wie können Sie Ihre Daten wirklich retten?

Die Lösung besteht darin, eine lokale Datei in den Container einzubinden (einen lokalen Ordner vom Host in den Container einzubinden, um die Datenbankdateien zu speichern).

Zuerst stoppen wir den vorherigen Container

Docker stoppt MySQL

Wir geben einen lokalen mountbaren Pfad an und starten tutum-docker-mysql neu. Wir geben /home/walter/softwares/tutum-docker-mysql/data an, das im Container in das Verzeichnis /var/lib/mysql gemountet werden soll (-v Bind mount a volume). Auf diese Weise können wir die Daten im Verzeichnis des Hosts persistent machen.

sudo docker run -d -p 3306:3306 -v /home/walter/softwares/tutum-docker-mysql/data:/var/lib/mysql -e MYSQL_PASS="mypass" tutum/mysql

Als wir es oben gestartet haben, haben wir das Passwort zum Erstellen als mypass angegeben. Melden wir uns jetzt bei MySQL an und erstellen einige Daten, um zu sehen, ob sie gespeichert werden.

shell>mysql -uadmin -pmypass -h127.0.0.1
mysql>Datenbanktest erstellen;

Beenden Sie mysql und starten Sie den Container neu. Die von uns durchgeführten Operationen bleiben erhalten. Bei jedem Start von mysql können wir den folgenden Befehl verwenden

docker run -d -p 127.0.0.1:3306:3306 -v /home/walter/softwares/tutum-docker-mysql/data:/var/lib/mysql tutum/mysql

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Docker mountet MySQL, um Datenpersistenz zu erreichen

<<:  Nodejs implementiert Intranet-Penetrationsdienst

>>:  Grafisches Tutorial zur Installation der MySQL 8.0.12-Dekomprimierungsversion unter Windows 10

Artikel empfehlen

MySQL-Tabellenfeld Zeiteinstellung Standardwert

Anwendungsszenario In der Datentabelle muss die A...

Transplantieren des Befehls mkfs.vfat in Busybox unter Linux

Um die Lebensdauer der Festplatte zum Speichern v...

Zusammenfassung einiger Vorschläge zum HTML-Code-Schreibstil

Das Protokoll der Ressourcendatei weglassen Es wi...

Website User Experience Design (UE)

Ich habe gerade einen von JunChen verfassten Beitr...

Detaillierte Erklärung des MySQL-Ausführungsplans

Die EXPLAIN-Anweisung liefert Informationen darüb...

Tiefes Verständnis der JavaScript-Syntax und Codestruktur

Inhaltsverzeichnis Überblick Funktionalität und L...

Was bedeutet Eingabetyp und wie kann die Eingabe begrenzt werden?

Gängige Methoden zur Begrenzung der Eingabe 1. Um ...

Mysql8.0 verwendet Fensterfunktionen, um Sortierprobleme zu lösen

Einführung in MySQL-Fensterfunktionen MySQL unter...

Warum wird die MySQL-Paging-Funktion bei Verwendung von Limits immer langsamer?

Inhaltsverzeichnis 1. Testexperiment 2. Leistungs...

Grundlegende Implementierung der AOP-Programmierung in JavaScript

Einführung in AOP Die Hauptfunktion von AOP (Aspe...

Nginx: Ein Domänenname für den Zugriff auf mehrere Projekte – Methodenbeispiel

Hintergrund Kürzlich stieß ich bei der Bereitstel...