Ya, Docker mencegah Anda memasang volume jarak jauh di dalam wadah sebagai tindakan pengamanan. Jika Anda memercayai gambar Anda dan orang yang menjalankannya, Anda dapat menggunakan --privileged bendera dengan docker run untuk menonaktifkan tindakan keamanan ini.
Selanjutnya, Anda dapat menggabungkan --cap-add dan --cap-drop untuk memberikan wadah hanya kemampuan yang benar-benar dibutuhkannya. (Lihat dokumentasi) SYS_ADMIN kapabilitas adalah salah satu yang memberikan hak istimewa mount.
- ya
- Ada masalah tertutup mount.cifs dalam wadah
https://github.com/docker/docker/issues/22197
menurut yang menambahkan
--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
ke opsi jalankan akan membuat mount -t cifs beroperasi.
Saya mencobanya dan:
mount -t cifs //<host>/<path> /<localpath> -o user=<user>,password=<user>
dalam wadah kemudian berfungsi
Anda bisa menggunakan smbclient perintah (bagian dari paket Samba) untuk mengakses server SMB/CIFS dari dalam wadah Docker tanpa memasangnya, dengan cara yang sama seperti Anda menggunakan curl untuk mengunduh atau mengunggah file.
Ada pertanyaan di StackExchange Unix yang membahas hal ini, namun singkatnya:
smbclient //server/share -c 'cd /path/to/file; put myfile'
Untuk banyak file ada -T opsi yang dapat membuat atau mengekstrak .tar arsip, namun sepertinya ini akan menjadi proses dua langkah (satu untuk membuat .tar dan kemudian yang lain untuk mengekstraknya secara lokal). Saya tidak yakin apakah Anda dapat menggunakan pipa untuk melakukannya dalam satu langkah.