Volume Docker dan pengikatan mount digunakan untuk mengikat direktori pada OS host ke lokasi di sistem file penampung. Meskipun biasanya digunakan untuk memasang seluruh direktori, Anda juga dapat menggunakannya untuk menghubungkan file satu per satu.
Symlink ke Docker Dari Host
Memasang seluruh direktori berfungsi dengan baik jika Anda menimpa seluruh daftar file konfigurasi, tetapi jika Anda hanya ingin menargetkan satu, Anda harus menggunakan satu file mount. Ini juga berguna jika Anda ingin memiliki beberapa mount ke dalam direktori yang sama, tetapi dari lokasi yang berbeda. Ini bekerja seperti symlink Linux biasa, kecuali ditangani melalui Docker dan melintasi jembatan antara sistem file host dan container.
Pemasangan volume Docker normal mengharuskan Anda memasang ke direktori target target , di mana volume akan ditautkan.
docker volume create nginx-config docker run -d --name devtest --mount source=nginx-config,target=/etc/nginx nginx:latest
Namun, dengan pengikatan mount, sumbernya dapat berupa direktori atau file pada tuan rumah. Pemasangan volume tidak mendukung ini, dan meskipun Anda biasanya ingin menggunakannya, Anda harus menggunakan pengikat tingkat yang lebih rendah jika Anda ingin memasang satu file.
Untuk melakukan ini, Anda dapat menjalankan wadah dengan flag --mount type=bind
, yang mendukung file individual jika Anda menentukan jalur:
docker run -it --mount type=bind,source=/path/file.cfg,target=/etc/example/file.cfg nginx sh
Atau, jika Anda benar-benar ingin menggunakan volume Docker, Anda dapat membuat volume hanya dengan file yang ingin Anda pasang, memasangnya ke direktori sementara di wadah, lalu membuat symlink aktual di dalam wadah (dalam skrip build Docker ) yang akan menautkan ke direktori temp dengan file. Itu mungkin solusi yang lebih buruk daripada bind mount secara keseluruhan, tetapi ini memungkinkan Anda untuk menyimpan data melalui API volume Docker.