はい、Docker は、セキュリティ対策としてコンテナー内にリモート ボリュームをマウントすることを妨げています。イメージとそれを実行する人を信頼できる場合は、 --privileged
を使用できます docker run
のフラグ これらのセキュリティ対策を無効にします。
さらに、 --cap-add
を組み合わせることができます と --cap-drop
実際に必要な機能のみをコンテナーに提供します。 (ドキュメントを参照) SYS_ADMIN
ケイパビリティは、マウント権限を付与するものです。
<オール>
https://github.com/docker/docker/issues/22197
追加によると
--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
実行オプションに追加すると、mount -t cifs が動作するようになります。
私はそれを試してみました:
mount -t cifs //<host>/<path> /<localpath> -o user=<user>,password=<user>
コンテナ内で動作します
smbclient
を使用できます curl
を使用するのと同じ方法で、マウントせずに Docker コンテナー内から SMB/CIFS サーバーにアクセスするためのコマンド (Samba パッケージの一部)。 ファイルをダウンロードまたはアップロードします。
これを扱う StackExchange Unix に関する質問がありますが、要するに:
smbclient //server/share -c 'cd /path/to/file; put myfile'
複数のファイルには -T
があります .tar
を作成または抽出できるオプション ただし、これは 2 段階のプロセスになるようです (1 つは .tar
を作成するためのプロセスです)。 次に、ローカルで抽出するために別のものを使用します)。パイプを使って 1 ステップでできるかどうかわかりません.