Ich konnte kein offenes Ticket zu diesem Problem finden, aber ich denke, ich bin nicht der einzige mit diesem Problem?
$ uname -a
Darwin 14.5.0 Darwin
Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015;
root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64
$ time docker-machine env dev >/dev/null
real 0m0.254s
user 0m0.217s
.. also macht es keinen Spaß, eval $(docker-machine env dev)
in .bash_profile zu haben.
Problemumgehung 1: Hartcodieren der Exporte
$ docker-machine env dev >> ~/.bash_profile
Problemumgehung 2: Sehr schmutziger Lazy-Loading-Fix
# Lazy load docker-machine env on first docker run
alias docker='docker-machine start dev>/dev/null && eval $(docker-machine env dev) && unalias docker && docker'
Es ist schwieriger als es aussieht, es schnell zu machen, da Sie tatsächlich die IP-Adresse der fraglichen VM nachschlagen müssen (und Zertifikate neu generieren müssen, wenn sie ungültig gemacht wurden). Wenn Sie bereit sind, den Kompromiss der Konsistenz zu akzeptieren, können Sie möglicherweise Ihre eigene Version erstellen, indem Sie die von inspect
"zwischengespeicherten" Werte verwenden, aber ich kann nicht garantieren, dass dies für immer funktioniert.
Ich werde dies schließen, da mir keine Möglichkeit einfällt, die aktuelle Methode zu verbessern, ohne die Konsistenz zu beeinträchtigen, aber Sie können gerne ein neues Problem mit Vorschlägen zur Verbesserung der Methode öffnen, z. B. docker-machine env --cached dev
"gecachte" Werte zu verwenden.
Ich kenne mich mit Docker-Maschine nicht so gut aus, daher ist es schwierig, einen Vorschlag zu machen. Ich wollte das Problem nur melden, damit es besprochen werden kann :)
Ich verwende übrigens den vmwarefusion-Treiber.
Danke für die Berichterstattung und zur Kenntnis genommen!
Ich landete damit, es läuft in 0.040
für mich.
: ${DOCKER_MACHINE_NAME="my_vm_name"}
docker-machine inspect ${DOCKER_MACHINE_NAME} --format \
"export DOCKER_HOST=tcp://{{ .Driver.IPAddress }}:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH={{ .HostOptions.AuthOptions.StorePath }}
export DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME}"
Hilfreichster Kommentar
Ich landete damit, es läuft in
0.040
für mich.