Ano, Docker vám z bezpečnostních důvodů brání v připojení vzdáleného svazku do kontejneru. Pokud důvěřujete svým obrázkům a lidem, kteří je provozují, můžete použít --privileged
příznak s docker run
k deaktivaci těchto bezpečnostních opatření.
Dále můžete kombinovat --cap-add
a --cap-drop
dát kontejneru pouze schopnosti, které skutečně potřebuje. (Viz dokumentaci) SYS_ADMIN
schopnost je ta, která uděluje oprávnění k připojení.
- ano
- Došlo k uzavřenému problému mount.cifs v kontejneru
https://github.com/docker/docker/issues/22197
podle kterého přidávání
--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
do voleb run zprovozní mount -t cifs.
Vyzkoušel jsem to a:
mount -t cifs //<host>/<path> /<localpath> -o user=<user>,password=<user>
uvnitř kontejneru pak funguje
Můžete použít smbclient
příkaz (součást balíčku Samba) pro přístup k serveru SMB/CIFS z kontejneru Docker, aniž byste jej museli připojovat, stejným způsobem, jako byste mohli použít curl
stáhnout nebo nahrát soubor.
Na StackExchange Unix existuje otázka, která se tím zabývá, ale ve zkratce:
smbclient //server/share -c 'cd /path/to/file; put myfile'
Pro více souborů existuje -T
možnost, která dokáže vytvořit nebo extrahovat .tar
archivy, nicméně to vypadá, že by to byl dvoufázový proces (jeden k vytvoření .tar
a poté další, abyste jej extrahovali lokálně). Nejsem si jistý, zda byste to mohli pomocí potrubí udělat v jednom kroku.