Описание
Я использую Docker версии 1.12.5 в Windows 10 через Hyper-V и хочу использовать исполняемые файлы контейнера в качестве команд в текущем пути. Я создал образ Docker, который работает нормально, но у меня проблема с подключением текущего пути. Идея состоит в том, чтобы создать псевдоним и выполнить docker run --rm [...]
команду, чтобы ее можно было использовать в рамках всей системы в текущем каталоге.
Настроить
У меня есть диск E с папкой «test» и в ней папка «папка на хосте Windows», чтобы показать, что команда работает. Dockerfile создает каталог /data
, определяет его как VOLUME и WORKDIR.
Имея E:\test
текущий каталог в PowerShell и выполняя команду Docker с абсолютным путем, я могу видеть содержимое 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'.
Каков правильный синтаксис монтирования текущего каталога как тома в Docker в Windows 10?