Docker-Compose z trwałymi danymi MySQL

Docker-Compose z trwałymi danymi MySQL

Importowanie jest utrzymywane w utrzymywaniu danych dla kontenerów z bazami danych. Docker zapewnia opcję utrzymywania plików bazy danych trwałych nad objętościami Docker lub przechowywania plików bezpośrednio na komputerze hosta.

Użyj jednej z poniższych opcji, aby utrzymać dane MySQL, nawet po odtworzeniu lub usunięciu kontenerów Docker.

Opcja 1 - Przechowywanie danych MySQL na objętości Docker

Wolume Docker są preferowane przez Docker do przechowywania trwałych danych kontenerów Docker. Możesz łatwo utworzyć wolumin Docker na komputerze hosta i dołączyć do kontenerów Docker.

Utwórzmy plik kompozycji Docker w swoim systemie z następującą zawartością.

Kompozycja dokera.YML:

Wersja: „3” Usługi: DB: Zdjęcie: MySQL: 5.7 Container_name: DB Środowisko: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass Porty: - "6033: 3306" volumes: -
1234567891011121314151617Wersja: „3” Usługi: DB: Zdjęcie: MySQL: 5.7 Container_name: DB Środowisko: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass Porty: - "6033: 3306" volumes: -

Powyższa konfiguracja zdefiniowano jeden wolumin danych o nazwie „DBData”, który jest przymocowany do kontenera MySQL i zamontowany na katalogu/var/lib/mysql. Jest to domyślny katalog używany przez MySQL do przechowywania wszystkich plików danych.

Następnie uruchom poniżej polecenie, aby uruchomić kontener Docker.

Docker -Compose Up -d 

Wyjście:

Tworzenie sieci „db_default” z domyślnym sterownikiem tworzących głośność „db_dbdata” z domyślnym sterownikiem tworząc db… gotowe 

Możesz wyświetlić tomy Docker, uruchamiając Commnad:

Docker Volume LS 

Opcja 2 - Przechowywanie danych MySQL na komputerze hosta

Zalecamy użycie woluminu danych zamiast umieszczania plików na komputerze hosta. Ale jeśli chcesz, możesz przechowywać pliki bazy danych na komputerze hosta. W każdym razie kontener Docker zostanie zakończony, możesz uruchomić kontener za pomocą istniejących plików danych.

Utwórz katalog, aby zachować pliki danych MySQL. Tworzę poniżej strukturę katalogu w bieżącym katalogu.

mkdir -p ./Data/DB 

Następnie skonfiguruj Docker-Compose.YML do użycia ./Data/DB jako wolumin do przechowywania wszystkich plików utworzonych przez serwer MySQL. Następnie utwórz komponowanie pliku w bieżącym katalogu.

Kompozycja dokera.YML:

Wersja: „3” Usługi: DB: Zdjęcie: MySQL: 5.7 Container_name: DB Środowisko: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass porty: - "6033: 3306" Volumes: - ./data/db:/var/lib/mysql
123456789101112131415Wersja: „3” Usługi: DB: Zdjęcie: MySQL: 5.7 Container_name: DB Środowisko: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass porty: - "6033: 3306" Volumes: - ./data/db:/var/lib/mysql

Po utworzeniu pliku po prostu uruchom poniższe polecenie, aby uruchomić kontener.

Docker -Compose Up -d 

Wyjście:

Tworzenie sieci „db_default” z domyślnym sterownikiem tworzącym db… gotowe 

W tym przypadku kontener MySQL tworzy wszystkie pliki na komputerze hosta ./Data/DB Directory. Aby wyświetlić te pliki, po prostu uruchom poniżej polecenie.

ls -l ./Data/DB DRWXR-X --- 2 Systemd-Coredump SystemD-Coredump 4096 lipca 1 11:07 APP_DB -RW-R ----- 1 SYSTEMD-COREDUMP SYSTEMD-COREDUMP 56 lipca 1 11:07 Auto.CNF -RW ------- 1 Systemd-Coredump SystemD-Coredump 1676 1 lipca 11:07 Ca-key.PEM -RW-R-R-- 1 Systemd-Coredump SystemD-Coredump 1112 lipca 1 11:07 Ca.PEM -RW-R-R-- 1 Systemd-Coredump SystemD-Coredump 1112 lipca 1 11:07-CERT.PEM -RW ------- 1 Systemd-Coredump SystemD-Coredump 1680 1 lipca 11:07 Key klienta.PEM -RW-R ----- 1 Systemd-Coredump SystemD-Coredump 1346 lipca 1 11:07 IB_Buffer_Pool -Rw-R ----- 1 Systemd-Coredump SystemD-Coredump 503331648 1 lipca 11:07 IB_LOGFILE0 -RW- R ----- 1 Systemd-Coredump SystemD-Coredump 50331648 lipca 1 11:07 IB_LOGFILE1 -RW-R ----- 1 Systemd-Coredump SystemD-Coredump 79691776 1 11:07 IbData1 -Rw-R --- " 1 lipca 11:07 Performance_schema -Rw ------- 1 Systemd-Coredump SystemD-Coredump 1680 1 lipca 11:07 private_key.PEM -RW-R-R-- 1 Systemd-Coredump SystemD-Coredump 452 lipca 1 11:07 public_key.PEM -RW-R-R-- 1 Systemd-Coredump SystemD-Coredump 1112 lipca 1 11:07 Serwer-CERT.PEM -RW ------- 1 Systemd-Coredump SystemD-Coredump 1680 1 lipca 11:07.PEM DRWXR-X --- 2 Systemd-Coredump SystemD-Coredump 12288 lipca 1 11:07 Sys