Monter un répertoire à partir de l'hôte dans boot2docker pour Windows


11

Je cours docker 1.6 et boot2docker sur une boîte Windows 8.1. Lorsque j'utilise le raccourci Boot2Docker Start, cela me conduit à une invite cygwin bash dans laquelle je peux exécuter des commandes docker de manière native.

Je ne parviens pas à monter un répertoire à partir de mon dossier d'utilisateurs. J'ai essayé:

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

Je reçois l'erreur:

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

J'obtiens les mêmes résultats quand je l'appelle de cette façon:

$ 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

J'ai aussi essayé:

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

Et j'ai eu l'erreur:

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

Il semble que cygwin bash remplace / avec \ puis docker analyse l'argument passé à -v et ne peut pas l'accepter.


Sur mon installation boot2docker, la commande "ls / c / Users" répertorie mon dossier Windows 8.1 C: \ Users. Avez-vous besoin de monter d'autres endroits?
Wilson Gibbins

Je peux certainement voir /c/Users à partir de la machine virtuelle linux boot2docker (l'hôte). Mais j'ai besoin du conteneur poliver / bitcoin-abe pour monter un dossier spécifique à partir de /c/Users au /datadir point de montage sur le conteneur.
Paul Oliver

Je semble également rencontrer le même problème, incapable de monter un dossier hôte. $ 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

Avez-vous trouvé une solution à votre problème?
Marco

Désolé Marco, pas encore de solution. :(
Paul Oliver

Réponses:


12

Si vous voulez monter le $APPDATA sur votre ordinateur hôte Windows pour /datadir sur le conteneur Docker, au lieu de la commande ci-dessous:

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

Vous pouvez émettre:

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

//c/Users/PATH_TO_DIR est la clé ici pour le répertoire Windows

Votre $APPDATA Annuaire DOIT résider sur le /c/Users/Your_User_Name répertoire et ne peux pas résider sur d'autres lieux. (par exemple. D:/$APPDATA sur la partition D.)


6

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

Si vous utilisez git bash sous Windows, msysgit convertit les chemins tels que / c / users en c: \ users (pas ce que vous voulez, car le chemin à l'intérieur de la machine virtuelle boot2docker est / c / Users).

Sur cmd.exe / powershell, vous ne devriez pas avoir ce problème.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.