Montaje de un directorio desde el host en boot2docker para Windows

11

Estoy ejecutando docker 1.6 y boot2dockeren un cuadro de Windows 8.1. Cuando uso el acceso directo Boot2Docker Start, me lleva a un indicador de basurero cygwin donde puedo ejecutar los comandos de Docker de forma nativa.

Tengo problemas para montar un directorio desde mi carpeta de usuarios. He intentado:

$ docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Me sale el error:

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'.

Obtengo los mismos resultados cuando lo llamo de esta manera:

$ 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

También he intentado:

$ docker run -d --name abe -v ~/APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Y recibí el error:

FATA[0000] Error response from daemon: cannot bind mount volume: ~\AppData\Bitcoin volume paths must be absolute.

Parece que cygwin bash se está reemplazando /por \y luego Docker analiza el argumento pasado -vy no puede aceptarlo.

Paul Oliver
fuente
En mi instalación boot2docker, el comando "ls / c / Users" enumera mi carpeta Windows 8.1 C: \ Users. ¿Necesitas montar otras ubicaciones?
Wilson Gibbins
Ciertamente puedo ver /c/Usersdesde el boot2docker linux VM (el host). Pero necesito el contenedor poliver / bitcoin-abe para montar una carpeta específica desde /c/Usersel /datadirpunto de montaje en el contenedor.
Paul Oliver
También parece experimentar el mismo problema al no poder montar una carpeta de host. $ docker run -d -v /c/Users/310145787/Desktop/mongo:/data/db mongo invalid value "c:\\Users\\310145787\\Desktop\\mongo;C:\\Program Files (x86)\\Git\\data\\db" for flag -v: \Users\310145787\Desktop\mongo;C:\Program Files (x86)\Git\data\db is not an absolute path
Marco
¿Obtuviste una solución a tu problema?
Marco
Lo siento Marco, todavía no hay solución. :(
Paul Oliver

Respuestas:

12

Si desea montar el $APPDATAen su máquina host de Windows /datadiren el contenedor acoplable, en lugar del siguiente comando:

docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Puedes emitir:

docker run -d --name abe -v //c/Users/YOUR_USER_NAME/$APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

//c/Users/PATH_TO_DIR es la clave aquí para el directorio de Windows

Su $APPDATAdirectorio DEBE residir en el /c/Users/Your_User_Namedirectorio y no puede residir en otros lugares. (por ejemplo, D:/$APPDATAen la partición D).

Xianlin
fuente
6

ver: https://github.com/docker/docker/issues/12590

Si está utilizando git bash en Windows, msysgit convierte rutas como / c / users a c: \ users (no es algo que desee porque la ruta dentro de la VM boot2docker es / c / Users)

En cmd.exe / powershell no deberías tener este problema.

Lee Yeh
fuente