Опис
Я використовую 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?