Windows용 boot2docker의 호스트에서 디렉터리 마운트

Windows용 boot2docker의 호스트에서 디렉터리 마운트

저는 docker 1.6과 boot2dockerWindows 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

아래 명령 대신 $APPDATAWindows 호스트 시스템 을 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:/$APPDATAD 파티션에 있습니다.)

답변2

보다:https://github.com/docker/docker/issues/12590

Windows에서 git bash를 사용하는 경우 msysgit은 /c/users와 같은 경로를 c:\users로 변환합니다(boot2docker VM 내부 경로가 /c/Users이기 때문에 원하는 것은 아닙니다).

cmd.exe/powershell에서는 이 문제가 발생하지 않아야 합니다.

관련 정보