Machine: Докер-машина env работает медленно

Созданный на 19 сент. 2015  ·  5Комментарии  ·  Источник: docker/machine

Мне не удалось найти открытый тикет по этой проблеме, но я полагаю, что я не единственный, у кого эта проблема?

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

Самый полезный комментарий

Я закончил с этим, он работает для меня в 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}"

Все 5 Комментарий

Это сложнее, чем кажется, сделать это быстро, поскольку вам нужно фактически найти 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 / 5 - 0 рейтинги