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.
/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.$ 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
Réponses:
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:Vous pouvez émettre:
//c/Users/PATH_TO_DIR
est la clé ici pour le répertoire WindowsVotre
$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.)la source
voir: https://github.com/docker/docker/issues/12590
la source