Pertimbangkan untuk jawaban ini:
- Nama basis data adalah
app_schema
- Nama wadahnya adalah
app_db
- Kata sandi root adalah
root123
Cara memperbarui MySQL saat menyimpan data aplikasi di dalam wadah
Ini dianggap praktik yang buruk , karena jika Anda kehilangan wadah, Anda akan kehilangan datanya. Meskipun ini adalah praktik yang buruk, berikut adalah cara yang mungkin untuk melakukannya:
1) Lakukan dump database sebagai SQL:
docker exec app_db sh -c 'exec mysqldump app_schema -uroot -proot123' > database_dump.sql
2) Perbarui gambar:
docker pull mysql:5.6
3) Perbarui wadah:
docker rm -f app_db
docker run --name app_db --restart unless-stopped \
-e MYSQL_ROOT_PASSWORD=root123 \
-d mysql:5.6
4) Kembalikan dump database:
docker exec app_db sh -c 'exec mysql -uroot -proot123' < database_dump.sql
Cara memperbarui wadah MySQL menggunakan volume eksternal
Menggunakan volume eksternal adalah cara yang lebih baik untuk mengelola data, dan membuatnya lebih mudah untuk memperbarui MySQL. Kehilangan wadah tidak akan kehilangan data apa pun. Anda dapat menggunakan docker-compose untuk memfasilitasi mengelola aplikasi Docker multi-kontainer dalam satu host:
1) Buat docker-compose.yml
file untuk mengelola aplikasi Anda:
version: '2'
services:
app_db:
image: mysql:5.6
restart: unless-stopped
volumes_from: app_db_data
app_db_data:
volumes: /my/data/dir:/var/lib/mysql
2) Perbarui MySQL (dari folder yang sama dengan docker-compose.yml
file):
docker-compose pull
docker-compose up -d
Catatan: perintah terakhir di atas akan memperbarui gambar MySQL, membuat ulang dan memulai wadah dengan gambar baru.