Sì, Docker ti impedisce di montare un volume remoto all'interno del container come misura di sicurezza. Se ti fidi delle tue immagini e delle persone che le gestiscono, allora puoi usare --privileged
flag con docker run
per disabilitare queste misure di sicurezza.
Inoltre, puoi combinare --cap-add
e --cap-drop
per fornire al contenitore solo le funzionalità di cui ha effettivamente bisogno. (Vedi documentazione) Il SYS_ADMIN
la capacità è quella che garantisce i privilegi di montaggio.
- sì
- C'è un problema chiuso mount.cifs all'interno di un contenitore
https://github.com/docker/docker/issues/22197
in base a quale aggiunta
--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
alle opzioni run renderà operativo mount -t cifs.
L'ho provato e:
mount -t cifs //<host>/<path> /<localpath> -o user=<user>,password=<user>
all'interno del contenitore allora funziona
Potresti usare il smbclient
comando (parte del pacchetto Samba) per accedere al server SMB/CIFS dall'interno del contenitore Docker senza montarlo, nello stesso modo in cui potresti usare curl
per scaricare o caricare un file.
C'è una domanda su StackExchange Unix che si occupa di questo, ma in breve:
smbclient //server/share -c 'cd /path/to/file; put myfile'
Per più file c'è il -T
opzione che può creare o estrarre .tar
archivi, tuttavia questo sembra essere un processo in due passaggi (uno per creare il .tar
e poi un altro per estrarlo localmente). Non sono sicuro se potresti usare una pipa per farlo in un solo passaggio.