[Docker] Docker stellt MySQL bereit und richtet Datenpersistenz ein


Der Zweck der Verwendung von Docker besteht darin, das Herunterladen und Bereitstellen zu erleichtern, ohne die mühsamen Schritte des Herunterladens, Konfigurierens, Installierens usw. durchlaufen zu müssen. Gleichzeitig weist Docker jedoch auch einige Mängel auf: Nach dem Löschen des Containers gehen beispielsweise die Daten verloren. Offensichtlich ist die Unfähigkeit zur Persistenz für eine MySQL-Datenbank, die Datenpersistenz erfordert, inakzeptabel. Gibt es eine Möglichkeit, das Problem zu lösen?

Ja, durch Montage

1. Docker behält MySQL bei

Der größte Vorteil des Mountens besteht darin, dass die Datei nach dem Löschen des Containers immer noch auf dem Host vorhanden ist und die Daten beim nächsten Start eines neuen Containers weiterhin verwendet werden können, ohne dass die Umgebung neu konfiguriert und die Daten wiederhergestellt werden müssen. Dies ist besonders benutzerfreundlich zu Containern, die Persistenz erfordern, wie z. B. MySQL.

Zur Verwendung -vkönnen Sie Dateien auf dem Host über den Befehl in den Container einbinden und beim Starten des Containers angeben. Beispiel:

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

2. Testen Sie das Löschen des MySQL-Containers und das anschließende Erstellen eines neuen Containers. Die Daten sind noch vorhanden.

  1. Nehmen Sie an, dass eine spring_test-Datenbank in einem Container namens mysql_test erstellt wird.

  2. Löschen Sie nun den mysql_test-Container (wenn er nicht gemountet ist, werden alle Datenbanken gelöscht)

    docker rm mysql_test
    
  3. Installieren Sie die Mount-Quelldateien erneut im neuen Container mysql_test_new

    docker run -p 3306:3306 --name mysql_test_new \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root  \
    -d mysql:5.7
    
  4. Nach dem Anmelden stellte ich fest, dass die Daten der ursprünglichen Datenbank spring_test noch vorhanden sind, haha, die Erfahrung ist großartig

3. Referenzen

Mein Artikel: „So überprüfen Sie, welche Versionen eines Docker-Image.md sind“

Mein Artikel: „Docker legt inländische Bildquelle.md fest“

Mein Artikel: „Docker Quick Start Practical Tutorial.md“

Mein Artikel: „Docker installiert MySQL, Redis, RabbitMQ, Elasticsearch, Nacos und andere gängige Dienste.md“

Mein Artikel: „Docker installiert Nacos service.md“

Mein Artikel: „So ändern Sie die Datei .md in Docker“

Mein Artikel: „Verbindungs- oder Kommunikationsmethoden zwischen Docker-Containern.md“

Mein Artikel: „So bleiben Datenbankdaten bestehen, wenn MySQL von Docker.md installiert wird“

Mein Artikel: „Making Docker Private Repository.md“

Mein Artikel: „Verwenden des Docker-Maven-Plugin-Plug-Ins zum Erstellen und Veröffentlichen von Push-Images in privaten Warehouses.md“

Mein Artikel: „Behebung des Fehlers von Docker beim Zugriff auf Port 9200 nach der Installation von Elasticsearch.md“


Portal: Spring5-Quellcode-Analyse im Nanny-Stil

Willkommen zum Austausch über Technologie und Arbeitsleben mit dem Autor

Kontaktieren Sie den Autor

おすすめ

転載: blog.csdn.net/yuchangyuan5237/article/details/131971896