Docker-sesuai dengan data MySQL yang berterusan

Docker-sesuai dengan data MySQL yang berterusan

Adalah mengimport untuk memastikan data berterusan bagi bekas yang menjalankan pangkalan data. Docker memberikan anda pilihan untuk menyimpan fail pangkalan data yang berterusan ke atas jumlah docker atau menyimpan fail secara langsung pada mesin hos.

Gunakan salah satu pilihan di bawah untuk memastikan data MySQL berterusan walaupun selepas mencipta atau memadam bekas Docker.

Pilihan 1 - Menyimpan data MySQL mengenai jumlah docker

Jilid Docker adalah mekanisme pilihan oleh Docker untuk menyimpan data berterusan bekas Docker. Anda boleh membuat kelantangan docker dengan mudah di mesin tuan rumah anda dan lampirkan ke bekas docker.

Mari buat fail-fail docker pada sistem anda dengan kandungan berikut.

Docker-compose.YML:

Versi: '3' Perkhidmatan: DB: Imej: MySQL: 5.7 container_name: db persekitaran: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: - "6033: 3306"
1234567891011121314151617Versi: '3' Perkhidmatan: DB: Imej: MySQL: 5.7 container_name: db persekitaran: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: - "6033: 3306"

Konfigurasi di atas ditakrifkan satu jumlah data yang dinamakan "DBData", yang dilampirkan pada bekas MySQL dan dipasang pada/var/lib/mysql direktori. Ini adalah direktori lalai yang digunakan oleh MySQL untuk menyimpan semua fail data.

Seterusnya, jalankan di bawah arahan untuk melancarkan Container Docker.

Docker -compose up -d 

Pengeluaran:

Membuat rangkaian "db_default" dengan pemacu lalai membuat kelantangan "db_dbdata" dengan pemacu lalai membuat db ... selesai 

Anda boleh melihat jumlah Docker dengan menjalankan Commnad:

Docker Volume LS 

Pilihan 2 - Menyimpan data MySQL pada Mesin Hos

Kami mengesyorkan untuk menggunakan kelantangan data dan bukannya meletakkan fail pada mesin hos. Tetapi, jika anda suka, anda boleh menyimpan fail pangkalan data pada mesin tuan rumah. Dalam mana -mana kes Docker Container ditamatkan, anda boleh melancarkan semula bekas menggunakan fail data yang ada.

Buat direktori untuk menyimpan fail data MySQL anda. Saya membuat struktur direktori di bawah di bawah direktori semasa.

mkdir -p ./data/db 

Kemudian konfigurasikan docker-compose.YML untuk digunakan ./data/db sebagai kelantangan untuk menyimpan semua fail yang dibuat oleh pelayan MySQL. Seterusnya Buat Fail Komposisi dalam direktori semasa.

Docker-compose.YML:

Versi: '3' Perkhidmatan: DB: Imej: MySQL: 5.7 container_name: db persekitaran: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: - "6033: 3306" volum: - ./data/db:/var/lib/mysql
123456789101112131415Versi: '3' Perkhidmatan: DB: Imej: MySQL: 5.7 container_name: db persekitaran: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: - "6033: 3306" volum: - ./data/db:/var/lib/mysql

Setelah membuat fail, jalankan arahan di bawah untuk melancarkan bekas.

Docker -compose up -d 

Pengeluaran:

Membuat rangkaian "db_default" dengan pemacu lalai membuat db ... selesai 

Dalam kes ini, bekas MySQL mencipta semua fail pada mesin tuan rumah di bawah ./direktori data/db. Untuk melihat fail ini, hanya berjalan di bawah arahan.

ls -l ./data/db DRWXR-X --- 2 SystemD-Coredump SystemD-Coredump 4096 Jul 1 11:07 APP_DB -RW-R ----- 1 SystemD-Coredump Systemd-Coredump 56 Jul 1 11:07.CNF -RW ------- 1 Systemd-Coredump Systemd-Coredump 1676 Jul 1 11:07 CA-Key.PEM -RW-R-R-- 1 Systemd-Coredump Systemd-Coredump 1112 Jul 1 11:07 CA.PEM -RW-R-R-- 1 Systemd-Coredump Systemd-Coredump 1112 Jul 1 11:07 Klien-Cert.PEM -RW ------- 1 Systemd-Coredump Systemd-Coredump 1680 Jul 1 11:07 Kekunci Pelanggan.PEM -RW-R ----- 1 Systemd-Coredump Systemd-Coredump 1346 Jul 1 11:07 IB_Buffer_Pool -RW-R ----- 1 Systemd-Coredump 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-Coredump SystemD-Coredump 79691776 Jul 1 11:07 IBDATA1 -RW-R --- -1 Systemd-Coredump Systemd-Coredump 12582912 Jul 1 11:07 IBTMP1 DRWXR-X --- 2 SystemD-Coredump SystemD-Coredump 4096 Jul 1 11:07 MySQL DRWX-X --- 2 SystemD-Coredump SystemD-Coredump 4096 1 Jul 11:07 Performance_schema -rw ------- 1 Systemd-Coredump Systemd-Coredump 1680 Jul 1 11:07 Private_key.PEM -RW-R-R-- 1 Systemd-Coredump Systemd-Coredump 452 Jul 1 11:07 Public_key.PEM -RW-R-R-- 1 Systemd-Coredump Systemd-Coredump 1112 Jul 1 11:07 Server-Cert.PEM -RW ------- 1 Systemd-Coredump Systemd-Coredump 1680 Jul 1 11:07 Server-Key.PEM DRWXR-X --- 2 Systemd-Coredump Systemd-Coredump 12288 Jul 1 11:07 SYS