Мне не удалось найти открытый тикет по этой проблеме, но я полагаю, что я не единственный, у кого эта проблема?
$ 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
.. так что иметь eval $(docker-machine env dev)
в .bash_profile - неинтересно.
Обходной путь 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'
Это сложнее, чем кажется, сделать это быстро, поскольку вам нужно фактически найти IP-адрес рассматриваемой виртуальной машины (и повторно создать сертификаты, если они были признаны недействительными). Если вы готовы пойти на компромисс с согласованностью, вы можете создать свою собственную версию, используя значения, «кэшированные» с помощью inspect
, но я не могу гарантировать, что это будет работать вечно.
Я собираюсь закрыть это, поскольку я не могу придумать способ улучшить текущий метод без ущерба для согласованности, но не стесняйтесь открывать новую проблему с предложениями о том, как можно улучшить метод, например docker-machine env --cached dev
использовать "кешированные" значения.
Я не так хорошо знаком с докер-машиной, поэтому мне трудно что-то придумать. Я просто хотел сообщить о проблеме, чтобы ее можно было обсудить :)
Кстати, я использую драйвер 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
.