Komposisi Docker dengan data MySQL yang persisten
- 886
- 104
- Jermaine Mohr
Itu penting untuk menjaga data tetap persisten untuk wadah yang menjalankan database. Docker menyediakan opsi untuk menjaga file database tetap ada di atas volume Docker atau menyimpan file secara langsung di mesin host.
Gunakan salah satu opsi di bawah ini untuk menjaga data MySQL tetap ada bahkan setelah menciptakan atau menghapus wadah Docker.
Opsi 1 - Menyimpan Data MySQL di Volume Docker
Volume Docker lebih disukai mekanisme oleh Docker untuk menyimpan data persisten dari wadah Docker. Anda dapat dengan mudah membuat volume Docker di mesin host Anda dan memasang ke wadah Docker.
Mari kita buat file komposisi Docker di sistem Anda dengan konten berikut.
Docker-Compose.YML:
Versi: Layanan '3': DB: Gambar: MySQL: 5.7 container_name: DB Lingkungan: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: "6033: 3306" volum: -kolum: volum: volum: "6033: 3306" volum: -volum: -volum: -3306 "1234567891011121314151617 | Versi: Layanan '3': DB: Gambar: MySQL: 5.7 container_name: DB Lingkungan: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: "6033: 3306" volum: -klat: dbol: "6033: 3306" volum: -kiblat: dbolum: "6033: 3306" volum: -3306 " |
Konfigurasi di atas mendefinisikan satu volume data bernama "DBData", yang dilampirkan pada wadah MySQL dan dipasang pada/var/lib/mysql direktori. Ini adalah direktori default yang digunakan oleh MySQL untuk menyimpan semua file data.
Selanjutnya, jalankan perintah di bawah untuk meluncurkan Docker Container.
Docker -Compose up -D
Keluaran:
Membuat jaringan "db_default" dengan driver default membuat volume "db_dbdata" dengan driver default membuat db… selesai
Anda dapat melihat volume Docker dengan menjalankan Commnad:
Volume Docker ls
Opsi 2 - Menyimpan data MySQL di mesin host
Kami menyarankan untuk menggunakan volume data alih -alih meletakkan file di mesin host. Tapi, jika Anda suka, Anda dapat menyimpan file database di mesin host. Dalam kasus apa pun wadah Docker dihentikan, Anda dapat meluncurkan kembali wadah menggunakan file data yang ada.
Buat direktori untuk menyimpan file data MySQL Anda. Saya membuat struktur direktori di bawah ini di bawah direktori saat ini.
mkdir -p ./data/db
Kemudian konfigurasikan komposisi Docker.YML untuk digunakan ./data/db sebagai volume untuk menyimpan semua file yang dibuat oleh server mysql. Selanjutnya buat file COMPOSE di direktori saat ini.
Docker-Compose.YML:
Versi: Layanan '3': DB: Gambar: MySQL: 5.7 container_name: DB Lingkungan: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: - "6033: 3306" volume: db_user_pass: - "6033: 3306" volume: db_user_pass: - "6033: 3306" volume: DB_USER_PASS: - "6033: 3306" Volume: DB_USER_PASS: "6033: 3306" volume: - ./data/db:/var/lib/mysql123456789101112131415 | Versi: Layanan '3': DB: Gambar: MySQL: 5.7 container_name: DB Lingkungan: mysql_root_password: my_secret_password mysql_database: app_db mysql_user: db_user mysql_password: db_user_pass port: - "6033: 3306" volume: db_user_pass: - "6033: 3306" volume: db_user_pass: - "6033: 3306" volume: DB_USER_PASS: - "6033: 3306" Volume: DB_USER_PASS: "6033: 3306" volume: - ./data/db:/var/lib/mysql |
Setelah membuat file, cukup jalankan perintah di bawah ini untuk meluncurkan wadah.
Docker -Compose up -D
Keluaran:
Membuat jaringan "db_default" dengan driver default membuat db… selesai
Dalam hal ini wadah MySQL membuat semua file di mesin host di bawah ./direktori data/db. Untuk melihat file -file ini, cukup jalankan perintah di bawah ini.
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 Auto.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.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 DRWXR-X --- 2 SystemD-Coredump-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
- « 7 wfh penting yang benar -benar Anda butuhkan
- Cara menemukan file yang dimodifikasi dalam 30 hari terakhir di Linux »