web-dev-qa-db-ja.com

DockerはネットワークドライブをWindowsのボリュームとして追加します

ネットワークドライブをボリュームとしてマウントしようとしています。これは私が試しているコマンドです

docker run -v //NetworkDirectory/Folder:/data Alpine ls /data

Windowsでこのコマンドを実行していますが、データディレクトリが空になっています。このネットワークディレクトリをWindowsホスト上のボリュームとしてマウントし、コンテナー内でそれにアクセスするにはどうすればよいですか?

ローカルディレクトリの操作は問題なく機能するため、次のコマンドは期待どおりに機能します。

docker run -v c:/Users/:/data Alpine ls /data

ローカルディレクトリにcifs-utilsで共有をマウントし、そのディレクトリをボリュームとして使用できるため、Linuxで動作させることができます。

編集:これは不可能のようです: Docker for Windows(Windows 10)でネットワークボリュームをマウントする方法

11
Salmaan P

私の同僚はこれを思い付きました、そしてそれは私たちの会社のネットワークドライブで動作し、それはそこにいる誰かを助けるかもしれません。

まず、mydockervolumeという名前のDockerボリュームを作成します。

docker volume create --driver local --opt type=cifs --opt device=//networkdrive-ip/Folder --opt o=user=yourusername,domain=yourdomain,password=yourpassword mydockervolume
  • --driverはボリュームドライバー名を指定します
  • --optドライバ固有のオプションを設定します。コンテナーの起動時にlinux mountコマンドに渡されると思います。

次に、ボリュームが動作することをテストできます
docker run -v mydockervolume:/data Alpine ls /data

ここでは、ドライバー固有のオプションとdocker volume createについて詳しく読むことができます

9

DockerにネイティブCIFSストレージドライバーが見つかりませんでした。

次のような外部ボリュームプラグインを使用できます。 https://github.com/ContainX/docker-volume-netshare NFS、AWS EFS、Samba/CIFSをサポートします

1