Docker telah mengubah cara kami mengemas program kami sejak kemunculannya pada tahun 2013. Docker memungkinkan pengembang untuk membangun perangkat lunak canggih dengan dependensi minimal dan membuat penerapan lebih mudah dari sebelumnya. Jika Anda seorang calon insinyur perangkat lunak yang ingin menguasai platform buruh pelabuhan, Anda harus memiliki pemahaman yang baik tentang berbagai perintah volume buruh pelabuhan. Volume adalah mekanisme yang digunakan oleh Docker untuk menyediakan penyimpanan data persisten. Mereka memberikan manfaat yang signifikan dalam hal pengembangan dan penyebaran perangkat lunak. Kami telah meluangkan waktu hari ini untuk mengajari Anda blok penyusun dasar volume data di Docker.
Contoh Perintah Volume Docker Penting
Panduan ini akan mengajarkan Anda metodologi terkini yang digunakan oleh pengembang untuk menerapkan penyimpanan data persisten dalam proyek komersial dan sumber terbuka. Anda akan dapat membuat volume data Anda sendiri dan mengaksesnya dengan mudah dari wadah buruh pelabuhan Anda setelah menyelesaikan panduan ini. Jika Anda benar-benar pemula, kami sarankan Anda meninjau panduan kami tentang perintah buruh pelabuhan penting sebelum bekerja dengan volume.
1. Membuat Volume Docker
Sangat mudah untuk membuat volume data di Docker. Anda harus menggunakan perintah volume create dari daemon buruh pelabuhan untuk melakukan ini. Lihat sekilas contoh di bawah ini untuk melihat cara kerjanya.
$ volume buruh pelabuhan buat testVolume
Perintah ini membuat nama volume data testVolume yang dapat digunakan oleh wadah tertentu atau dibagikan di antara sekelompok wadah. Anda sekarang dapat memasang volume ini ke lokasi di dalam wadah. Setelah selesai, akan sangat mudah untuk menyimpan atau mengakses data container dari mesin host.
2. Menampilkan Volume yang Tersedia
Adalah umum untuk lingkungan pengembangan memiliki sejumlah besar volume data. Jadi, sangat penting untuk mengidentifikasi volume spesifik yang Anda kerjakan. Untungnya, sangat mudah untuk membuat daftar semua volume data yang saat ini dideklarasikan menggunakan sub-perintah volume ls dari daemon buruh pelabuhan.
$ volume buruh pelabuhan ls- -
Anda akan mendapatkan daftar semua volume buruh pelabuhan yang ada di host Anda dengan menjalankan perintah di atas. Ini mencetak nama volume data serta driver volume masing-masing. Volume data disimpan di bagian tertentu dari sistem file host, yaitu /var/lib/docker/volumes/ di Linux.
3. Memeriksa Volume Docker
Perintah volume inspects daemon docker memberi kita informasi penting tentang volume tertentu. Ini menampilkan informasi seperti driver volume, titik pemasangan, cakupan, dan label. Perintah di bawah ini menunjukkannya menggunakan contoh praktis.
$ volume buruh pelabuhan memeriksa testVolume
Data yang dihasilkan menunjukkan bahwa testVolume . kami dipasang di lokasi /var/lib/docker/volumes/testVolume/_data dari mesin host kami. Ini juga menampilkan tanggal pembuatan untuk informasi ini serta opsi yang ditentukan. Ini membuat pemecahan masalah volume data menjadi lebih mudah bagi pengembang.
4. Menghapus Volume Tertentu
Jika Anda telah mengumpulkan volume data yang tidak digunakan, ada baiknya untuk menghapusnya. Anda dapat mengosongkan ruang penyimpanan di lingkungan host dengan cara ini. Contoh berikut mengilustrasikan bagaimana Anda dapat menghapus satu volume menggunakan atribut name-nya.
$ volume buruh pelabuhan rm testVolume
Jadi, Anda dapat menghapus volume data tertentu dengan menggunakan sub-perintah volume rm, diikuti dengan nama volume. Ini akan mengembalikan nama volume yang dihapus di emulator terminal Linux Anda sebagai konfirmasi.
5. Menghapus Beberapa Volume
Menghapus beberapa volume data juga cukup mudah. Cukup berikan nama volume yang ingin Anda hapus satu demi satu. Perintah di bawah ini menunjukkan tindakan ini.
$ volume buruh pelabuhan rm testVolume newVolume OtherVolume
Perintah ini akan menghapus tiga volume data yang ditentukan. Perhatikan bahwa kami belum membuat newVolume dan Volume lainnya . Mereka telah digunakan di sini untuk tujuan demonstrasi saja. Jadi, pastikan volume data Anda ada terlebih dahulu sebelum menghapusnya.
6. Menghapus Semua Volume
Itu selalu merupakan ide yang baik untuk menyingkirkan volume data Anda setelah wadah Anda dipindahkan ke lingkungan produksi dari mesin pengembangan Anda. Untungnya, daemon buruh pelabuhan memungkinkan pengembang untuk menghapus semua volume buruh pelabuhan yang tersedia menggunakan satu perintah, seperti yang diilustrasikan di bawah ini.
$ pemangkasan volume buruh pelabuhan
Selain itu, perintah volume buruh pelabuhan ini anggun, artinya tidak akan menghapus volume apa pun yang digunakan oleh wadah yang ada. Dengan demikian, sangat aman untuk digunakan dan membantu mengosongkan ruang yang sangat dibutuhkan di lingkungan pengembangan.
7. Membuat Penampung dengan Volume Data
Kami hanya menunjukkan beberapa operasi volume dasar sejauh ini. Namun, Anda perlu memasang volume data Anda ke wadah buruh pelabuhan di sebagian besar skenario kehidupan nyata. Perintah buruh pelabuhan berikut menunjukkan cara membuat wadah buruh pelabuhan dan memasang volume data ke wadah ini.
$ docker run -d -it --name test-container -v "testVolume":/tmp ubuntu:xenial
$ docker run -d -it --name test-container --volume "testVolume":/tmp ubuntu:xenial
Perintah ini akan membuat wadah bernama test-container menggunakan gambar ubuntu:xenial dan memasang volume data kita ke /tmp lokasi wadah ini. Anda dapat menemukan informasi lebih lanjut dengan menjalankan perintah di bawah ini dan memeriksa bagian “Mount” pada output.
$ docker inspect test-container
8. Memasang Volume Data ke Wadah
–mount option di Docker dapat digunakan untuk menangani volume data yang ada ke bagian tertentu dari sistem file container. Meskipun hasilnya akan sangat mirip dengan perintah di atas, namun lebih intuitif bagi banyak pengembang Linux.
$ docker run -d -it --name test-container --mount source=testVolume,target=/tmp ubuntu:xenial
–mount opsi satu set tupel yang dipisahkan koma. Ini adalah
9. Membuat Bind Mount di Docker
Bind mount adalah mekanisme persistensi yang telah tersedia sejak awal Docker. Mereka menyediakan fungsionalitas yang agak terbatas dibandingkan dengan volume buruh pelabuhan tetapi lebih cocok dalam beberapa kasus tertentu. Berlawanan dengan volume, bind mount bergantung pada sistem file host yang mendasarinya.
$ docker run -d -it --name test-container --mount type=bind,source=$(pwd),target=/tmp ubuntu:xenial
Perintah di atas membuat bind mount yang memetakan direktori kerja saat ini dari sistem file Linux Anda ke /tmp lokasi wadah. type=bind tuple menunjukkan bahwa ini adalah pengikatan, bukan volume.
10. Volume Data Pra-Pengisian
Terkadang pengembang mungkin perlu mengisi volume data mereka terlebih dahulu saat membuat wadah buruh pelabuhan. Namun, teknik ini hanya berlaku jika tujuan target container menyimpan data sebelum pembuatan volume.
$ docker run -d --name=nginxContainer -v nginxVol:/usr/share/nginx/html nginx:latest
Perintah ini pertama-tama membuat volume nginxVol dan mengisinya dengan konten /usr/share/nginx/html lokasi sistem file kontainer. Sekarang, data ini akan dapat diakses oleh semua container lain yang berbagi volume nginxVol. Anda dapat menggunakan sintaks mount sebagai alternatif, seperti yang ditunjukkan di bawah ini.
$ docker run -d --name=nginxContainer --mount source=nginxVol,destination=/usr/share/nginx/html nginx:latest
11. Menggunakan Volume Hanya Baca
Secara default, semua container memiliki akses baca dan tulis ke volume data masing-masing. Namun, tidak semua container perlu menulis data ke volume. Seringkali hanya membaca data sudah cukup baik. Dalam kasus seperti itu, Anda dapat menetapkan akses baca-saja untuk penampung Anda. Periksa perintah volume buruh pelabuhan untuk melihat cara kerjanya.
$ docker run -d --name=nginxContainer -v nginxVol:/usr/share/nginx/html:ro nginx:latest
Jadi, cukup dengan menambahkan ‘:ro ' setelah tujuan akan melarang nginxContainer menulis data ke file nginxVol. Anda harus menggunakan 'hanya baca ' jika Anda membuat volume menggunakan opsi –mount. Perhatikan perbedaan sintaks dengan cermat.
$ docker run -d --name=nginxContainer --mount source=nginxVol,destination=/usr/share/nginx/html, readonly nginx:latest
12. Membuat Volume menggunakan Driver
Driver volume adalah mekanisme fleksibel yang digunakan oleh Docker untuk menyediakan akses ke pemasangan jarak jauh, enkripsi data, dan fitur lainnya. Perintah di bawah ini menunjukkan kepada pengguna cara membuat wadah buruh pelabuhan menggunakan driver volume tertentu.
$ docker volume create --driver vieux/sshfs -o [email protected]:/home/session -o password=testPassword sshVolume
Perintah ini membuat volume data buruh pelabuhan menggunakan driver vieux/sshfs. Driver ini memungkinkan pengembang untuk melampirkan direktori jarak jauh menggunakan teknologi SSHFS.
13. Menjalankan Kontainer yang Membuat Volume menggunakan Driver
Anda dapat menggunakan perintah berikut untuk membuat dan memulai container yang menggunakan driver volume untuk membuat volume datanya. Contoh ini dibangun berdasarkan contoh di atas.
$ docker run -d --name sshfsContainer --volume-driver vieux/sshfs --mount src=sshVolume,target=/tmp,[email protected]:/home/session,volume-opt=password=testPassword nginx:terbaru
Tuple volume-opt melewati opsi. Itu tidak diperlukan untuk setiap kasus penggunaan. Namun, jika Anda menentukan volume-opt, Anda harus menggunakan –mount bendera bukannya -v atau –volume.
14. Membuat Layanan yang Menggunakan Volume NFS
NFS atau Network File System adalah sistem file-sharing terdistribusi yang memungkinkan kita untuk menggunakan sistem file jarak jauh seolah-olah mereka adalah bagian dari sistem file lokal. Perintah berikut menunjukkan cara membuat layanan yang menggunakan volume NFS.
$ layanan buruh pelabuhan buat -d --name nfs-service --mount 'type=volume,source=nfsVolume,target=/tmp,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/var/docker-nfs,volume-opt=o=addr=10.0.10' nginx:latest
Perintah ini mengasumsikan bahwa server NGS kami berjalan pada 10.0.0.10, dan menampilkan /var/docker-nfs direktori. Ini juga menggunakan NFSv3. Jadi, Anda perlu melakukan beberapa penyesuaian sebelum menggunakan ini dengan NFSv4.
15. Mencadangkan Kontainer
Volume menyediakan cara yang fleksibel bagi pengembang untuk mencadangkan data container penting. Untuk tujuan ilustrasi, pertama-tama kita akan membuat container baru bernama test-container.
$ docker run -v /data --name test-container ubuntu:xenial /bin/bash
Jadi, test-container memiliki volume yang disebut /data. Sekarang, kita akan meluncurkan wadah lain dan memasang /data volume dari wadah uji. Kami kemudian akan memasang direktori lokal sistem file kami sebagai /backup lalu simpan konten /data ke /cadangan direktori sebagai backup.tar.
$ docker run --rm --volumes-from test-container -v $(pwd):/backup ubuntu:xenial tar cvf /backup/backup.tar /data
–volume-dari opsi menunjukkan bahwa kami sebenarnya memasang volume data penampung uji ke penampung baru kami.
16. Memulihkan Cadangan Penampung
Juga sangat mudah untuk memulihkan wadah Anda dari file cadangan. Anda dapat memulihkan data ke wadah yang sama atau ke wadah tertentu. Kami akan menunjukkan cara mengembalikan konten file backup.tar yang dibuat pada contoh sebelumnya ke wadah yang berbeda di sini.
$ docker run -v /data --name test-container2 ubuntu /bin/bash
Perintah ini membuat penampung baru lainnya dengan /data volume. Sekarang kita akan mengekstrak isi file backup.tar dalam volume data baru ini.
$ docker run --rm --volumes-from test-container2 -v $(pwd):/backup ubuntu bash -c "cd /data &&tar xvf /backup/backup.tar --strip 1"Anda dapat mengotomatiskan pencadangan dan pemulihan menggunakan perintah volume buruh pelabuhan yang sederhana namun fleksibel ini dengan mudah.
17. Menghapus Volume Anonim
Sebelumnya, kita telah melihat cara menghapus volume bernama normal. Namun, Docker juga memiliki jenis volume data lain yang disebut volume anonim. Lihat sekilas perintah di bawah ini untuk melihat bagaimana operasi penghapusan berbeda antara volume bernama dan anonim.
$ docker run --rm -v /anon -v whats-in-a-name:/tmp busybox topPerintah di atas akan membuat volume anonim bernama /anon dan volume bernama bernama whats-in-a-name . Sekarang, Docker akan menghapus wadah ini secara otomatis saat keluar. Namun, itu hanya akan menghapus /anon volume, bukan volume whats-in-a-name. Anda perlu menghapusnya menggunakan perintah volume buruh pelabuhan rm.
18. Menentukan Perambatan Gunung
Perambatan mount menunjukkan aliran kontrol antara mount asli dan replikanya. Secara default, baik pengikatan mount dan volume menggunakan rprivate pengaturan. Ini menahan setiap propagasi antara mount asli dan replikanya. Anda dapat mengganti pengaturan ini menggunakan tupel propagasi-bind dari pengikatan pengikat.
$ docker run -d -it --name test-container --mount type=bind,source="$(pwd)"/test,target=/tmp --mount type=bind,source="$( pwd)"/test,target=/temp,readonly,bind-propagation=shared nginx:latestPerintah ini memasang /test direktori dua kali ke dalam wadah. Selain itu, setiap tambahan baru pada /tmp mount akan tercermin dalam /temp gunung. Namun, Anda tidak dapat mengesampingkan pengaturan propagasi saat menggunakan volume. Ini hanya berfungsi saat menggunakan bind mount pada host Linux.
19. Menampilkan Manual Perintah Volume
Anda dapat dengan mudah melihat penggunaan dasar dari perintah volume dengan menggunakan perintah di bawah ini.
$ volume pekerja buruh pelabuhanNamun tidak memberikan penjelasan yang mendalam. Jadi, kami sarankan Anda berkonsultasi dengan dokumentasi buruh pelabuhan resmi tentang volume dan pengikatan mount.
20. Menampilkan Halaman Bantuan untuk Sub-Perintah
Gunakan perintah berikut untuk menampilkan opsi utama yang tersedia untuk volume buruh pelabuhan.
$ volume buruh pelabuhan --helpAnda juga dapat menampilkan informasi lebih lanjut tentang opsi tertentu dengan menggunakan sintaks berikut.
$ volume buruh pelabuhan COMMAND --help$ volume buruh pelabuhan ls --help
Mengakhiri Pikiran
Volume Docker menyediakan fasilitas yang sangat dibutuhkan untuk aplikasi modern. Mereka memungkinkan pengembang untuk membuat aplikasi dan layanan yang kuat dan mutakhir dengan menghilangkan masalah penyimpanan. Selain itu, perintah volume buruh pelabuhan juga memudahkan untuk membuat dan memelihara cadangan data kontainer Anda. Kami telah menyusun panduan yang dipikirkan dengan cermat ini untuk membantu Anda menguasai volume data dengan lebih mudah. Kami sangat menyarankan Anda memulai dengan perintah dasar terlebih dahulu dan kemudian secara bertahap beralih ke skenario kehidupan nyata yang kompleks. Mudah-mudahan, kami memberikan Anda informasi yang Anda cari dalam panduan ini. Jangan lupa untuk meninggalkan kami komentar jika Anda memiliki pertanyaan.
50 Contoh Praktis Perintah SED di Linux 50 Tip Keamanan Hardening Linux Terbaik:Daftar Periksa KomprehensifLinux