説明
Hyper-Vを介してWindows 10でDockerバージョン1.12.5を使用しており、現在のパスでコマンドとしてコンテナー実行可能ファイルを使用したい。正常に動作しているDockerイメージをビルドしましたが、現在のパスをマウントするのに問題があります。アイデアは、エイリアスを作成してdocker run --rm [...]
コマンドを実行し、現在のディレクトリでシステム全体で使用できるようにすることです。
セットアップ
「test」フォルダのあるドライブEがあり、その中に「windows host on folder」というフォルダがあり、コマンドが機能していることを示しています。Dockerfileはディレクトリを作成し、/data
それをVOLUMEおよびWORKDIRとして定義します。
有するE:\test
PowerShellのカレントディレクトリとして絶対パスとドッカーコマンドを実行し、Iは、コンテンツを見ることができますE:\test
。
PS E:\test> docker run --rm -it -v E:\test:/data mirkohaaser/docker-clitools ls -la
total 0
drwxr-xr-x 2 root root 0 Jan 4 11:45 .
drwxr-xr-x 2 root root 0 Jan 5 12:17 folder on windows host
問題
絶対表記ではなく、現在のディレクトリを使用したい。エラーメッセージが異なるため、ボリュームでpwdを使用できませんでした。
($ pwd)で試す
PS E:\test> docker run --rm -it -v ($pwd):/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: ":/data" is not a valid repository/tag.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
/($ pwd)で試す
PS E:\test> docker run --rm -it -v /($pwd):/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: "E:\\test" is not a valid repository/tag.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
\´pwd \ ´で試す
PS E:\test> docker run --rm -it -v ´$pwd´:/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Invalid bind mount spec "´E:\\test´:/data": invalid mode: /data.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
`pwd`で試す
PS E:\test> docker run --rm -it -v `$pwd`:/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: create $pwd: "$pwd" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Windows 10のDockerでボリュームとして現在のディレクトリをマウントする正しい構文は何ですか?