'Using Docker via Windows console: includes invalid characters $PWD for a local volume name
I try to run a Python program with Docker via the Windows console (Windows 10).
I had made the Windows console be capable of Docker Hello, World!.
But when I run:
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py
I get the error:
docker: Error response from daemon: create $PWD: volume name invalid:
"$PWD" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed.See 'docker run --help'.
While running the same code via Docker Quickstart Terminal, it runs well.
I tried to, but I can't solve it. How can I do it?
Solution 1:[1]
I think, the substitution of Linux command $(pwd)
in Windows is "%cd%"
.
So, try out following command which might help you.
docker run -it --rm --name my-running-script -v "%cd%":/usr/src/myapp -w /usr/src/myapp python:2 python test.py
Solution 2:[2]
Read the documentation: Manage data in containers
If you are using Docker Machine on Mac or Windows, your Docker daemon has only limited access to your OS X or Windows filesystem. Docker Machine tries to auto-share your /Users (OS X) or C:\Users (Windows) directory.
So, you can mount files or directories on OS X using:
docker run -v /Users/<path>:/<container path> ...
On Windows, mount directories using:
docker run -v /c/Users/<path>:/<container path> ...`
My Docker Machine is on Windows, so instead of ' "$PWD" ' like:
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py
Use ' /c/Users/your_name ' like:
docker run -it --rm --name my-running-script -v /c/Users/cn_pa:/usr/src/myapp -w /usr/src/myapp python:2 python test.py
Solution 3:[3]
This did work for me in Powershell.
docker run -p 8080:3000 -v ${pwd}:/var/www -w "/var/www" node npm start
Solution 4:[4]
if you use a bash command line on windows, you will works just placing a / before $ PWD. Something like:
docker run -v /$PWD:/src
Solution 5:[5]
On Windows 10, using Cmder (cmd.exe) I came upon this error while in the getting started tutorial on this step: Part 6: Use binds mounts
Start a dev-mode container
If you are using PowerShell then use this command:
PS> docker run -dp 3000:3000 `
-w /app -v "$(pwd):/app" `
node:12-alpine `
sh -c "yarn install && yarn run dev"
But if you are using Command Prompt then use this command:
docker run -dp 3000:3000 ^
-w /app -v "%cd%":/app ^
node:12-alpine ^
sh -c "yarn install && yarn run dev"
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Peter Mortensen |
Solution 2 | Peter Mortensen |
Solution 3 | Hardik Raval |
Solution 4 | M-- |
Solution 5 | treckstar |