この問題に関するオープンチケットは見つかりませんでしたが、この問題を抱えているのは私だけではないと思いますか?
$ 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
..したがって、.bash_profileにeval $(docker-machine env dev)
を含めるのは楽しいことではありません。
回避策1:エクスポートをハードコーディングする
$ docker-machine env dev >> ~/.bash_profile
回避策2:非常にダーティな遅延読み込みの修正
# 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'
問題のVMのIPアドレスを実際に検索する必要があるため(無効になっている場合は証明書を再生成する必要があるため)、高速化するのは見た目よりも困難です。 一貫性のトレードオフを受け入れる場合は、 inspect
で「キャッシュ」された値を使用して独自のバージョンを作成できる可能性がありますが、それが永久に機能することを保証することはできません。
一貫性を犠牲にせずに現在のメソッドを改善する方法を考えることができないので、これを閉じますが、メソッドがどのように改善されるかについての提案で新しい問題を開いてください。例: docker-machine env --cached dev
「キャッシュされた」値を使用します。
私はdocker-machineにあまり詳しくないので、提案を思い付くのは難しいです。 話し合うことができるように、問題を報告したかっただけです:)
私はvmwarefusionドライバーを使用しています。
報告してくれてありがとう、そして注目!
私はこれで終わりました、それは私のために0.040
れます。
: ${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}"
最も参考になるコメント
私はこれで終わりました、それは私のために
0.040
れます。