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.