Ich verwende ein natives Docker für Windows (auf Windows 10) für WordPress-Entwicklung. Ich habe zwei Container: WordPress und MySQL. Der MySQL-Container hat ein Datenvolumen, in dem DB-Daten zwischen Läufen gespeichert werden.Wie persistente MySQL-Container unter Windows 10 zwischen Neustarts
Ich starte Container mit 'Docker-komponieren -d' und höre mit 'Docker-komponieren' auf. Wenn Sie auf diese Weise gestoppt werden, werden MySQL-Daten ordnungsgemäß auf dem Daten-Volume gespeichert und wenn ich das nächste Mal starte, sehe ich, dass alle meine Änderungen bestehen bleiben.
Wenn ich jedoch Windows 10 neu starte, ohne zuerst die MySQL-Container zu stoppen, werden Änderungen, die seit dem letzten Start an der Datenbank vorgenommen wurden, nicht gespeichert. Docker für Windows ist intelligent genug, um die gleichen Volumes zu starten, die vor dem Neustart ausgeführt wurden, aber ist es wirklich nicht wichtig, sie ordnungsgemäß herunterzufahren, damit die DB-Daten gespeichert werden? Ist es wirklich so oder missverstehe ich irgendetwas?
Was ist der zuverlässigste Weg, Datenverluste beim Systemneustart zu vermeiden? Es ist eine langwierige Aufgabe, alle MySQL-Container vor dem Neustart manuell zu stoppen, besonders wenn mehrere Server laufen. Wahrscheinlich kann ich ein Skript erstellen, das die Ausgabe von "docker ps" analysiert und alle MySQL-Container vor dem Neustart stoppt, aber ich fürchte, dass ich hier wahrscheinlich ein Rad neu erfinde.
Was ist der beste Weg, um mit einer Situation umzugehen? Ich habe hoch und niedrig gesucht, aber nichts zu einem Thema gefunden. Bin ich der Einzige, der das braucht? Fehle ich hier etwas?
Jede Hilfe wirklich geschätzt! Vielen Dank!
P.S. Meine Docker-compose.yml Datei ist:
version: '2'
services:
db:
image: mysql:5.7
ports:
- "9013:3306"
volumes:
- ./database:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wordpress:/var/www/html
ports:
- "8013:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_TABLE_PREFIX: wpd1_
Können Sie Ihre 'docker-compose.yml' Datei anzeigen? –
@ janshair-khan hinzugefügt, dass der Text auf meine Frage – Kirlat