Docker-Compose mit anhaltenden MySQL-Daten

Docker-Compose mit anhaltenden MySQL-Daten

Es ist wichtig, die Daten für Container, die Datenbanken ausführen. Docker bietet Ihnen die Möglichkeit, Datenbankdateien über das Docker -Volumes oder das Speichern von Dateien direkt auf dem Host -Computer zu halten.

Verwenden Sie eine der folgenden Optionen, um die MySQL -Daten auch nach dem Nachbau oder Löschen von Docker -Containern anhaltend zu halten.

Option 1 - Speichern von MySQL -Daten zu Docker -Bänden

Die Docker -Bände werden vom Docker -Mechanismus für die Speicherung anhaltender Daten von Docker -Containern bevorzugt. Sie können problemlos ein Docker -Volumen auf Ihrem Host -Computer erstellen und an einen Docker -Container anhängen.

Erstellen wir mit dem folgenden Inhalt eine Docker-Compose-Datei in Ihrem System.

Docker-Compose.YML:

Version: '3' Dienste: DB: Bild: MySQL: 5.7 container_name: db environment: MYSQL_ROOT_PASSWORD: my_secret_password MYSQL_DATABASE: app_db MYSQL_USER: db_user MYSQL_PASSWORD: db_user_pass ports: - "6033:3306" volumes: - dbdata:/var/lib/mysql volumes: dbdata:
1234567891011121314151617Version: '3' Dienste: DB: Bild: MySQL: 5.7 container_name: db environment: MYSQL_ROOT_PASSWORD: my_secret_password MYSQL_DATABASE: app_db MYSQL_USER: db_user MYSQL_PASSWORD: db_user_pass ports: - "6033:3306" volumes: - dbdata:/var/lib/mysqlvolumes: dbdata:

Die obige Konfiguration definierte ein Datenvolumen mit dem Namen „DBDATA“, das mit dem MySQL -Container beigefügt und im Verzeichnis/var/lib/mysql montiert ist. Dies ist das Standardverzeichnis, das von MySQL zum Speichern aller Datendateien verwendet wird.

Führen Sie als nächstes den Befehl unten aus, um den Docker -Container zu starten.

Docker -Compose Up -d 

Ausgang:

Erstellen von Netzwerk "db_default" mit dem Standardtreiber Erstellen von Volumen "db_dbdata" mit dem Standardtreiber erstellt DB… DEFT 

Sie können das Docker -Volumes durch Ausführen von Commnad anzeigen:

Docker Volume Ls 

Option 2 - Speichern von MySQL -Daten auf dem Host -Computer

Wir empfehlen, das Datenvolumen zu verwenden, anstatt Dateien auf Host -Computer zu setzen. Wenn Sie möchten, können Sie Datenbankdateien auf dem Host -Computer aufbewahren. In jedem Fall werden Docker -Container beendet.

Erstellen Sie ein Verzeichnis, um Ihre MySQL -Datendateien zu behalten. Ich erstelle unter dem aktuellen Verzeichnis die folgende Verzeichnisstruktur.

Mkdir -p ./Daten/dB 

Konfigurieren Sie dann Docker-Compose.YML zu verwenden ./data/dB als Volumen, um alle vom MySQL -Server erstellten Dateien zu speichern. Als nächstes erstellen Sie die Datei komponieren im aktuellen Verzeichnis.

Docker-Compose.YML:

Version: '3' Dienste: DB: Bild: MySQL: 5.7 Container_Name: DB -Umgebung: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass anschließend: - ./data/db:/var/lib/mysql
123456789101112131415Version: '3' Dienste: DB: Bild: MySQL: 5.7 Container_Name: DB -Umgebung: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass anschließend: - ./data/db:/var/lib/mysql

Führen Sie nach dem Erstellen von Datei den folgenden Befehl aus, um den Container zu starten.

Docker -Compose Up -d 

Ausgang:

Erstellen von Netzwerk "DB_DEFAULT" mit dem Standardtreiber erstellen DB… erstellt… 

In diesem Fall erstellt der MySQL -Container alle Dateien auf dem Host -Computer unter ./Data/dB -Verzeichnis. Um diese Dateien anzuzeigen, führen Sie einfach den Befehl unten aus.

ls -l ./Daten/dB DRWXR-X --- 2 SYSTEMD-CORDEUM SYSTEMD-CORDEUMS 4096 JUL 1 11:07 APP_DB -RW-R ----- 1 SYSTEMD-CORDEUME SYSTEMD-CORDERN 56 JUL 1 11:07 Auto.cnf -rw ------- 1 systemd-coredump systemd-coredump 1676 1. Juli 11:07 CA-Key.PEM-RW-R-R-- 1 SYSTEMD-CORDEUM SYSTEMD-CORDEUMKUMPEN 1112 1. Juli 11:07 CA.PEM-RW-R-R-- 1 SYSTEMD-CORDEUM SYSTEMD-CORDELN 1112 1. Juli 11:07 Client-Cert-Cert.PEM-RW ------- 1 SYSTEMD-CORDEUM SYSTEMD-CORDEMUMP 1680 1. Juli 11:07 Client-Taste.pem -rw-r ----- 1 systemd-coredump systemd-coredump 1346 Jul 1 11:07 IB_BUFFER_POOL -RW-R ----- 1 SYSTEMD-CORDEL SYSTEMD-COREDUMP 50331648 JUL 1 11:07 IB_LOGFILE0 -RW- r ----- 1 systemd-coredump systemd-coredump 50331648 Jul 1 11:07 IB_LOGFILE1 -RW-R ----- 1 SYSTEMD-CORDEUM SYSTEMD-CORDERN 79691776 JUL 1 11:07 IBDATA1 -RW-R --- . 1. Juli 11:07 Performance_Schema -rw ------- 1 systemd-coredump systemd-coredump 1680 1. Juli 11:07 privat_key.PEM-RW-R-R-- 1 SYSTEMD-CORDEUM SYSTEMD-CORDEUM 452 1. Juli 11:07 public_key.PEM-RW-R-R-- 1 SYSTEMD-CORDEUM SYSTEMD-CORDERN 1112 Jul 1 11:07 Server-Cert.pem -rw ------- 1 systemd-coredump systemd-coredump 1680 1. Juli 11:07 Serverschlüssel.PEM DRWXR-X --- 2 SYSTEMD-CORDEUM SYSTEMD-CORDEMUMP 12288 Jul 1 11:07 SYS