machine how docker boot2docker

how - docker windows



Docker se queja de un certificado no válido después de la actualización a v1.7.0 (4)

Después de actualizar Docker v1.7.0 (y también boot2docker), aparece el siguiente error al ejecutar docker ps :

x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103

¿Es este un problema conocido de esta versión y qué puedo hacer para solucionarlo?


De la guía de troubleshooting :

docker-machine regenerate-certs default docker-machine restart default

Y entonces estás listo, ejecuta esto como de costumbre

eval $(docker-machine env default)


Este es un problema conocido introducido en la versión 1.7.0 de boot2docker: https://github.com/boot2docker/boot2docker/issues/824

Actualizar a boot2docker 1.7.1

La actualización a boot2docker 1.7.1 corrige este problema, como se describe here .

Opciones para boot2docker 1.7.0

Parece estar relacionado con la forma en que las interfaces de red se acercan durante el arranque. Las siguientes opciones se pueden usar para solucionar esto.

Opción 1

La solución es ejecutar la siguiente secuencia, que agrega código para esperar a que todas las interfaces de red estén presentes:

boot2docker ssh sudo curl -o /var/lib/boot2docker/profile https://gist.githubusercontent.com/garthk/d5a17007c277aa5c76de/raw/3d09c77aae38b4f2809d504784965f5a16f2de4c/profile sudo halt boot2docker up

Fuente (y más detalles sobre el código que se descarga): https://gist.github.com/garthk/d5a17007c277aa5c76de

Esto me solucionó el problema, aunque tuve que detener boot2docker-vm a través de la interfaz de usuario de VirtualBox para tener un comienzo limpio.

The Gist agrega lo siguiente al archivo .profile en boot2docker VM:

wait4eth1() { CNT=0 until ip a show eth1 | grep -q UP do [ $((CNT++)) -gt 60 ] && break || sleep 1 done sleep 1 } wait4eth1

Esta función espera hasta 1 minuto para que aparezca la interfaz eth1 .

opcion 2

Otra opción parece ser hacer

boot2docker delete boot2docker init boot2docker up

Esto destruirá la máquina virtual boot2docker; es posible que pierda las personalizaciones que haya realizado.


He encontrado la siguiente alternativa "fácil" para trabajar. Use un alias de shell :

alias docker="docker --tlsverify=false"

Gracias a Mark Duncan .


Simplemente ejecutar este comando soluciona el problema por mí. Esto fue sugerido por un empleado de Docker a través de GitHub.

boot2docker ssh sudo /etc/init.d/docker restart

Lamentablemente, debe ejecutarse cada vez que inicie boot2docker.