File (dan data lain) yang disimpan dalam wadah Docker tidak akan bertahan jika wadah dihapus. Untuk mengatasinya, Docker volume dan ikat tunggangan dapat digunakan. Panduan ini membahas penggunaan volume Docker sebagai cara untuk menyimpan data persisten. Pikirkan volume sebagai hard drive eksternal; jika hard drive internal dihapus, hard drive eksternal masih menyimpan datanya sendiri. Volume disimpan di host dan tidak bergantung pada wadah atau gambar apa pun. Mereka dapat dipasang ke wadah yang berbeda sesuai kebutuhan dan, karena volume terpisah dari gambar, mereka tidak menambah ukuran gambar.
Sebelum Anda Mulai
-
Jika Anda belum melakukannya, buat akun Linode dan Compute Instance. Lihat panduan Memulai Linode dan Membuat Instans Komputasi.
-
Ikuti panduan Menyiapkan dan Mengamankan Instans Komputasi untuk memperbarui sistem Anda. Anda mungkin juga ingin mengatur zona waktu, mengkonfigurasi nama host Anda, membuat akun pengguna terbatas, dan memperkuat akses SSH.
-
Instal Docker di sistem Anda.
-
Panduan ini mengasumsikan Anda nyaman menggunakan baris perintah Linux. LihatMenggunakan terminal.
-
Panduan ini mengasumsikan Anda memiliki pemahaman dasar tentang Docker. Selain itu, Anda seharusnya sudah menginstal Docker di server Anda dan menerapkan image Docker. Lihat Pengantar Docker.
Membuat Volume Docker
Untuk mulai memahami Volume Docker, Anda memerlukan volume untuk dikerjakan.
-
Masuk ke Linode Anda (atau server Linux lainnya) melalui SSH atau Lish.
-
Buat volume dengan memasukkan perintah berikut, menggantikan example_volume dengan label untuk volume Anda.
docker volume create example_volume
-
Pastikan volume telah dibuat.
docker volume list
Outputnya akan terlihat seperti ini:
[[email protected] ~]$ docker volume list DRIVER VOLUME NAME local example_volume [[email protected] ~]$
Memeriksa Volume Docker
Jika Anda ingin melihat detail lebih lanjut tentang volume, Anda dapat menggunakan docker volume inspect
perintah:
docker volume inspect example_volume
Outputnya harus seperti berikut:
[[email protected] ~]$ docker volume inspect example_volume
[
{
"CreatedAt": "2021-05-19T15:27:27Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/example_volume/_data",
"Name": "example_volume",
"Options": {},
"Scope": "local"
}
]
[[email protected] ~]$
Memasang Volume Docker ke Wadah
Agar data container tetap ada, Anda harus memasang Docker Volume menggunakan --mount flag
di docker run
memerintah. Ganti [nama_volume] dengan nama volume Anda, [path] dengan jalur absolut yang Anda inginkan untuk memasang volume di dalam wadah, dan [docker_image] dengan nama gambar Anda.
docker run --mount source=[volume_name],destination=[path] [docker_image]
Sebagai contoh, perintah berikut memasang volume bernama example_volume ke jalur /example_volume
di dalam wadah menggunakan ubuntu
gambar.
docker run -it --name=example --mount source=example_volume,destination=/example_volume ubuntu
Perintah ini menjalankan gambar, memasang volume, dan memasukkan pengguna sebagai root pada gambar Ubuntu. Setelah masuk sebagai root, Anda dapat memverifikasi bahwa "example_volume" dipasang hanya dengan ls
. Output untuk semua ini akan terlihat seperti ini:
[[email protected] ~]$ docker run -it --name=example --mount source=example_volume,destination=/example_volume ubuntu
[email protected]:/# ls
bin dev example_volume lib lib64 media opt root sbin sys usr
boot etc home lib32 libx32 mnt proc run srv tmp var
[email protected]:/#
Menyalin dan Berbagi File Antar Container
Volume Docker juga memungkinkan berbagi antar container.
-
Pasang volume sesuai dengan instruksi di dalam Memasang Volume Docker ke Wadah. Berikut adalah contoh yang digunakan sebelumnya:
docker run -it --name=example --mount source=example_volume,destination=/example_volume ubuntu
-
Ubah direktori ke
example_data
direktori.cd example_data
-
Buat file uji dalam volume dengan memasukkan
touch
berikut perintah.touch example_file.txt
-
Kemudian keluar dari wadah.
exit
-
Sekarang jalankan gambar buruh pelabuhan lain dengan volume yang sama terpasang.
debian
gambar digunakan dalam contoh di bawah ini.docker run -it --name=example_2 --mount source=example_volume,destination=/example_volume debian
-
Di dalam wadah baru (disebut “example_2” jika menggunakan perintah yang mirip dengan yang di atas), navigasikan ke direktori volume.
cd example_volume
-
Masukkan
ls
untuk melihat file.ls
Memasang Direktori dari Linode Anda ke Kontainer
Alih-alih membuat volume baru, Anda juga dapat memasang direktori dari Linode Anda (atau sistem lain) ke wadah Docker. Ini dilakukan melalui pengikatan dan sangat membantu ketika Anda ingin menyimpan dan mengakses file penampung Anda langsung dari sistem Anda. Dibandingkan dengan volume, bind mount memiliki fungsionalitas yang terbatas.
-
Masuk ke Linode Anda (atau server Linux lainnya) melalui SSH atau Lish.
-
Gunakan perintah berikut untuk menjalankan Docker, menggantikan [local-directory] dengan path absolut ke direktori di dalam Linode yang ingin Anda mount (gunakan
$(pwd)
untuk memasang direktori saat ini). Kemudian ganti [mount-directory] dengan jalur absolut pada wadah tempat Anda ingin mengakses file lokal dan ganti [image] dengan gambar Docker yang ingin Anda gunakan.docker run --rm -it -v [local-directory]:[mount-directory] [image]
-
Anda secara otomatis masuk ke wadah. Navigasikan ke direktori mount Anda dan lihat filenya.
ls
Anda akan melihat file apa pun yang telah Anda simpan di dalam direktori lokal.
Bacaan Lebih Lanjut
Ada lebih banyak lagi untuk Volume Docker daripada yang bisa kita bahas di sini, dan kasus penggunaan setiap orang akan berbeda. Namun, dua tempat bagus untuk mengulas lebih lanjut tentang ini adalah di situs Docker's Docs itu sendiri:
-
Gunakan volume di Docker Docs
-
Memecahkan masalah kesalahan volume di Docker Docs
Informasi Lebih Lanjut
Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.
- Gunakan volume di Docker Docs
- Memecahkan masalah kesalahan volume di Docker Documents