Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Cara Mencadangkan Volume Docker Anda

Posted on October 22, 2022 by Syauqi Wiryahasana
Docker digunakan untuk menyimpan data persisten secara terpisah dari wadah Anda. Data yang disimpan dalam volume tetap dapat diakses setelah penampung Anda berhenti, memungkinkan Anda untuk menampung beban kerja stateful. Meskipun volume lebih lama dari penampung, perlindungan ini tidak cukup untuk aplikasi produksi. Anda harus mencadangkan volume Anda sehingga Anda dapat memulihkannya setelah bencana. Membuat cadangan volume reguler memastikan Anda dapat memulihkan lingkungan Anda jika host Docker Anda disusupi atau data terhapus secara tidak sengaja.

Mengelola Pencadangan Volume

Docker tidak memiliki mekanisme bawaan untuk mencadangkan volume atau mengekspor kontennya. Anda perlu menyiapkan solusi Anda sendiri untuk mengakses volume dan menyalin datanya ke tujuan pencadangan Anda. Membuat wadah sementara yang memuat volume yang Anda perlukan untuk mencadangkan biasanya merupakan cara termudah untuk melanjutkan. Tambahkan flag --volumes-from ke perintah docker run untuk secara otomatis memasang volume container yang ada ke container cadangan Anda. Anda kemudian dapat menggunakan alat seperti tar dan gzip untuk menyimpan arsip konten volume ke direktori kerja Anda. Berikut contoh lengkap teknik ini: # Buat wadah yang menyimpan data di volume docker "mysql_data" run -d --name mysql -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql mysql:8 # Mulai wadah sementara untuk mencadangkan "mysql_data" volume docker run --rm --volumes-from mysql -v $PWD:/backup-dir ubuntu tar cvf /backup-dir/mysql-backup.tar /var/lib/mysql Bendera --volumes-from berarti wadah cadangan sementara menerima akses ke volume wadah mysql. Direktori /var/lib/mysql di dalam wadah cadangan memaparkan konten volume karena ini adalah jalur yang digunakan oleh wadah mysql. Tarring jalur akan menghasilkan arsip volume Anda yang dapat Anda gunakan sebagai cadangan. Itu disimpan ke direktori kerja Anda karena pengikatan mount yang diatur oleh flag -v. The --rm flag akan menghapus wadah cadangan segera setelah perintah selesai. Ini meninggalkan arsip di direktori kerja Anda, siap untuk dipindahkan ke penyimpanan jangka panjang. Anda dapat mengotomatiskan pembuatan cadangan dengan menambahkan perintah docker run sebagai tugas cron.

Memulihkan Cadangan Anda

Anda dapat menggunakan teknik serupa untuk memulihkan cadangan Anda. Saat Anda mengganti konten volume yang ada, buat wadah sementara lain dengan volume dan pengikatan ke arsip cadangan Anda. Ekstrak isi arsip ke dalam mount path volume. $ docker run --rm --volumes-from mysql -v $PWD:/backup-dir bash -c "cd /var/lib/mysql && tar xvf / backup-dir/mysql-backup.tar" Ini bisa berisiko jika kontainer secara aktif menggunakan volume. Menimpa file yang sedang digunakan dapat menyebabkan kesalahan dan perilaku yang tidak diharapkan. Anda dapat menggunakan perintah docker stop untuk menghentikan sementara container Anda sebelum membawanya kembali dengan docker start. $ docker stop mysql # Restore the backup # ... $ docker start mysql Buat volume sebelum Anda memulai container jika Anda memulihkan cadangan ke Host baru: $ docker volume create new_volume Kemudian pasang volume ini ke wadah sementara Anda: docker run --rm -v new_volume:/var/lib/mysql -v $PWD:/backup-dir ubuntu tar cvf /backup-dir/mysql-backup.tar /var/lib/mysql Memulai wadah aplikasi Anda dengan volume yang sama akan memberikan akses ke file yang telah Anda pulihkan: docker run -d --name mysql -v new_volume:/var /lib/mysql -e MYSQL_ROOT_PASSWORD=mysql mysql:8 Menguji prosedur ini memungkinkan Anda memeriksa apakah cadangan Anda dapat digunakan jika Anda menghadapi bencana.

Mencadangkan Volume Secara Langsung

Prosedur yang diuraikan di atas adalah cara yang disarankan untuk mencadangkan volume Docker. Namun beberapa situasi bisa lebih baik dilayani dengan langsung menyalin konten dari tempat volume disimpan di sistem file host Anda. Anda biasanya akan menemukan konten volume Anda di /var/lib/docker/volumes. Setiap volume mendapatkan subdirektori sendiri, seperti /var/lib/docker/volumes/mysql. Dalam jalur tingkat atas ini Anda akan menemukan folder _data yang berisi semua file yang disimpan di dalam volume. Mengarsipkan direktori /var/lib/docker/volumes dapat menjadi cara mudah untuk mencadangkan semua yang ada di host Anda dengan cepat. Anda harus menggunakan sudo karena semua yang ada di bawah jalur ini dimiliki oleh root. Mencadangkan volume dengan cara ini tidak disarankan untuk penggunaan biasa karena tidak portabel di seluruh instalasi. Sistem driver volume Docker berarti data volume tidak perlu disimpan di sistem file host Anda – bisa di jaringan berbagi atau lokasi jarak jauh lainnya. Teknik ini hanya boleh dicoba bila Anda menginginkan pencadangan cepat sebelum menjalankan pemeliharaan pada mesin tertentu. Docker perlu ditangani dengan hati-hati karena berisi data persisten aplikasi Anda. Membuat cadangan reguler akan melindungi Anda dari kehilangan data jika host Anda disusupi atau proses penampung yang salah menghapus file secara tidak sengaja. Meskipun Anda dapat membuat cadangan dengan mengarsipkan direktori instalasi Docker, hal ini harus dihindari sedapat mungkin. Wadah cadangan sementara mungkin tampak rumit tetapi dapat dengan mudah dituliskan dan memberikan hasil yang dapat diprediksi di seluruh driver volume. Setelah Anda membuat arsip cadangan volume, ingatlah untuk mengunggahnya ke penyimpanan jarak jauh sesegera mungkin. Cadangan yang disimpan di mesin asalnya tidak akan membantu jika Anda kehilangan akses atau terjadi kegagalan perangkat keras. Disadur dari HowToGeek.com.
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically