저는 docker 1.6과 boot2docker
Windows 8.1 상자를 실행하고 있습니다. Boot2Docker 시작 바로가기를 사용하면 기본적으로 docker 명령을 실행할 수 있는 cygwin bash 프롬프트로 이동됩니다.
내 사용자 폴더에서 디렉터리를 마운트하는 데 문제가 있습니다. 난 노력 했어:
$ docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
오류가 발생합니다.
invalid value "C:\\Users\\someone\\AppData\\Roaming/Bitcoin:/datadir"
for flag -v: \Users\someone\AppData\Roaming/Bitcoin:/datadir
is not an absolute path
See 'c:\Program Files\Boot2DockeForWindows\docker.exe run --help'.
다음과 같이 호출하면 동일한 결과를 얻습니다.
$ docker run -d --name abe -v "$APPDATA/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v "/c/users/someone/AppData/Roaming/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v ~/AppData/Roaming/Bitcoin:/datadir poliver/bitcoin-abe
나는 또한 다음을 시도했습니다.
$ docker run -d --name abe -v ~/APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
그리고 오류가 발생했습니다.
FATA[0000] Error response from daemon: cannot bind mount volume: ~\AppData\Bitcoin volume paths must be absolute.
/
cygwin bash가 다음으로 대체 \
되고 docker가 전달된 인수를 구문 분석하고 -v
이를 받아들일 수 없는 것 같습니다 .
답변1
아래 명령 대신 $APPDATA
Windows 호스트 시스템 을 Docker 컨테이너에 마운트하려는 경우 :/datadir
docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
다음을 발행할 수 있습니다:
docker run -d --name abe -v //c/Users/YOUR_USER_NAME/$APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
//c/Users/PATH_TO_DIR
Windows 디렉토리의 핵심은 여기입니다.
귀하의 $APPDATA
디렉토리해야 하다디렉토리 에 상주 /c/Users/Your_User_Name
하고할 수 없다다른 곳에 거주하세요. (예: D:/$APPDATA
D 파티션에 있습니다.)
답변2
보다:https://github.com/docker/docker/issues/12590
Windows에서 git bash를 사용하는 경우 msysgit은 /c/users와 같은 경로를 c:\users로 변환합니다(boot2docker VM 내부 경로가 /c/Users이기 때문에 원하는 것은 아닙니다).
cmd.exe/powershell에서는 이 문제가 발생하지 않아야 합니다.