Opis
Używam Dockera w wersji 1.12.5 w systemie Windows 10 przez Hyper-V i chcę używać plików wykonywalnych kontenera jako poleceń w bieżącej ścieżce. Zbudowałem obraz Dockera, który działa poprawnie, ale mam problem z zamontowaniem bieżącej ścieżki. Pomysł polega na utworzeniu aliasu i wykonaniu docker run --rm [...]
polecenia, aby można go było używać w całym systemie w bieżącym katalogu.
Ustawiać
Mam dysk E z folderem „test”, a tam folder o nazwie „folder na hoście systemu Windows”, aby pokazać, że polecenie działa. Dockerfile tworzy katalog /data
, definiuje go jako VOLUME i WORKDIR.
Mając E:\test
jako bieżący katalog w PowerShell i wykonując polecenie Docker ze ścieżką bezwzględną, widzę zawartość 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
Problem
Chcę używać bieżącego katalogu, a nie notacji absolutnej. Nie mogłem użyć pwd w woluminie z powodu różnych komunikatów o błędach:
Próbuję z ($ 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'.
Próbuję z / ($ 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'.
Próbuję z \ ´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'.
Próbuję z „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'.
Jaka jest poprawna składnia montowania bieżącego katalogu jako woluminu w Dockerze w systemie Windows 10?