tag run remove mac hub for example compose macos docker timeout virtualbox docker-machine

macos - run - docker-compose



Tiempo de espera de la máquina Docker: ¿cómo solucionarlo sin destruir la máquina? (7)

Tengo un problema recurrente con Docker Machine: cada pocos días decide el tiempo de espera y no puedo recuperarlo una vez que esto sucede.

Ejemplo

docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default virtualbox Timeout

Información del entorno

uname -a Darwin ColeyMBPR 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64 docker version 1.11.0 docker-machine version 0.7.0 vboxmanage --version 5.0.20r106931

Soluciones intentadas

He intentado las siguientes cosas en ningún orden en particular:

  • Reiniciando la máquina docker.
  • Ejecutando eval "$(docker-machine env default)"
  • Regenerando los certificados docker-machine regenerate-certs default
  • Reiniciando mi caja de host.
  • Actualización de Docker.
  • Reinstalando Docker.
  • Actualizando VirtualBox.
  • Eliminación de todos los dispositivos de red solo host de VirtualBox.

Cortar

Lo único que me funciona en este momento es destruir la máquina acoplable y volver a crearla. Esto destruye todas mis imágenes y contenedores, y es increíblemente lento para configurarlo de nuevo.

docker-machine rm -y default && docker-machine create -d virtualbox default && eval $(docker-machine env)

¿Hay algo que pueda intentar? ¡Gracias!

Actualización: 9 de mayo (Pasos para reproducir)

Puedo reproducir este problema de manera confiable con los siguientes pasos:

  1. Comience con una máquina Docker recién creada.
  2. Usa docker-compose up para construir algunos contenedores.
  3. Apague la computadora con los contenedores en funcionamiento.
  4. Después de reiniciar, la CLI de Docker no funciona debido al tiempo de espera de la máquina Docker.


Este suele ser un problema relacionado con la forma en que inicia y detiene su máquina.

U puede resolverlo usando

$ docker-machine detener por defecto

$ docker-machine start default

$ docker-machine regenerate-certs por defecto

No use "docker-machine restar default" porque no actualizará sus configuraciones de red.


Esto funcionó para mí y mis contenedores no fueron destruidos:

  1. Se abrió la caja virtual de Oracle y se detuvo la VM
  2. Reiniciado la máquina virtual en la máquina docker

    $ docker-máquina reinicio por defecto

Versión docker: 1.12.3

Versión docker-máquina: 0.8.2, compilación e18a919


Hasta ahora tengo un poco de una solución intrincada: esto corrige la máquina de la ventana acoplable pero destruye todos los contenedores e imágenes.

Script: rebuild-machine.sh

docker-machine rm -y default docker-machine create -d virtualbox default docker-machine stop default VBoxManage modifyvm "default" --natpf1 "Forwarding App 1,tcp,127.0.0.1,3000,,3000" VBoxManage modifyvm "default" --natpf1 "Forwarding App 2,tcp,127.0.0.1,3001,,3001" VBoxManage modifyvm "default" --natpf1 "Forwarding App 3,tcp,127.0.0.1,3004,,3004" VBoxManage modifyvm "default" --natpf1 "Forwarding App 4,tcp,127.0.0.1,3005,,3005" VBoxManage modifyvm "default" --natpf1 "Forwarding App 5,tcp,127.0.0.1,3006,,3006" VBoxManage modifyvm "default" --natpf1 "Forwarding App 6,tcp,127.0.0.1,8081,,8081" docker-machine start default eval $(docker-machine env)

Explicación

  • Destruye la máquina docker predeterminada, contenedores e imágenes.
  • Crea una nueva máquina docker en VirtualBox y la detiene para que podamos modificar VirtualBox.
  • Agrega el reenvío de puertos para varias aplicaciones en VirtualBox.
  • Inicia la máquina docker.
  • Asegura que la Terminal esté configurada para la nueva dirección IP de la máquina docker.

He abierto virtualbox y he cerrado e inicio todos los vm manualmente /. Estado se está running nuevo


Mi problema fue muy trivial: hice el comando "docker machine ls" justo después de reiniciar la máquina docker, por lo que aún no se estaba ejecutando y eso causó un tiempo de espera.


Tuve el mismo problema con Docker versión 1.11.2, compilación b9f10c9

esto funcionó para mí: mi máquina docker ha vuelto al estado de funcionamiento

reinicio de $ docker-máquina

$ eval $ (docker-machine env)