Machine: docker-machine env es lento

Creado en 19 sept. 2015  ·  5Comentarios  ·  Fuente: docker/machine

No pude encontrar un ticket abierto con respecto a este problema, pero supongo que no soy el único que tiene este problema.

$ 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

.. así que tener eval $(docker-machine env dev) en .bash_profile no es divertido.

Solución 1: codifique las exportaciones de forma rígida

$ docker-machine env dev >> ~/.bash_profile

Solución 2: corrección de carga diferida muy sucia

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

Comentario más útil

Terminé con esto, se ejecuta en 0.040 para mí.

: ${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}"

Todos 5 comentarios

Es más difícil de lo que parece hacerlo rápido, ya que debe buscar la dirección IP de la máquina virtual en cuestión (y regenerar los certificados si se han invalidado). Si está dispuesto a aceptar el compromiso de coherencia, es posible que pueda crear su propia versión utilizando los valores "almacenados en caché" por inspect , pero no puedo garantizar que funcione para siempre.

Voy a cerrar esto porque no puedo pensar en una manera de mejorar el método actual sin sacrificar la consistencia, pero siéntase libre de abrir un nuevo problema con sugerencias sobre cómo se podría mejorar el método, por ejemplo, docker-machine env --cached dev para utilizar valores "almacenados en caché".

No estoy tan familiarizado con la máquina acoplable, por lo que es difícil hacer una sugerencia. Solo quería informar el problema para poder discutirlo :)

Estoy usando el controlador vmwarefusion por cierto.

Gracias por informar, ¡y anotado!

Terminé con esto, se ejecuta en 0.040 para mí.

: ${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}"
¿Fue útil esta página
0 / 5 - 0 calificaciones