docker - library - Error al verificar la conexión TLS: Error al verificar y/o regenerar los certificados
docker registry (8)
Después de investigar un poco, descubrí que la siguiente solución puede resolver el problema por ahora:
Red abierta y centro de intercambio de
Haga clic en Cambiar configuración del adaptador
Vea si tiene adaptadores habilitados como VPN o adaptadores de red VM Ware.
Intenta desactivarlos e intenta conectarse a tu contenedor una vez más
Si no funcionó mientras tenías otros adaptadores desactivados, reinicia tu PC, en mi caso, esto funcionó para mí.
Después de reiniciar mis ventanas, no puedo conectarme a la máquina de la ventana acoplable que se ejecuta en Oracle Virtual Box. Cuando comienzo a Docker QuickStart Terminal, todo se ve bien, sale bien y me da este mensaje:
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
pero cuando lo hago:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Timeout
y:
λ docker images
An error occurred trying to connect: Get http://localhost:2375/v1.21/images/json: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it.
también cuando intento reinicializar mi env., obtengo:
λ docker-machine env default
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": dial tcp 192.168.99.100:2376: i/o timeout
You can attempt to regenerate them using ''docker-machine regenerate-certs [name]''.
Be advised that this will trigger a Docker daemon restart which will stop running containers.
Por cierto, los certificados de regeneración tampoco ayudan. ¿Alguna idea?
Gracias.
En mi caso, fue mi FortiClient
que causó el problema. Después de deshabilitarlo, la docker-machine env default
funcionó bien nuevamente. Le sugiero que verifique si hay algún programa antivirus en ejecución en su sistema.
Esto es lo que funcionó para mí. Los primeros pasos son similares a los propuestos por Hazhir, seguidos de regenerar los certificados.
- Red abierta y centro de intercambio de.
- Haga clic en Cambiar configuración del adaptador.
- Desactive todos los adaptadores de red activos de VMWare. Por lo general, tiene la explicación "VirtualBox Host-Only Ethernet Adapter".
- Conéctese a su contenedor ejecutando
docker-machine start
. - Ejecutar
docker-machine env
. Si eres como yo, obtendrías el siguiente error:
Error al verificar la conexión TLS: Error al verificar y / o regenerar los certificados: hubo un error al validar los certificados para el host "192.168.99.100:2376": x509: el certificado es válido para 192.168.99.101, no 192.168.99.100
Lo que es bueno. Ahora todo lo que tenemos que hacer es correr
docker-machine regenerate-certs -f default
Luego probarlo de nuevo con el docker-machine env
. Si lo consigues:
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:/Users/Jay/.docker/machine/machines/default
SET DOCKER_MACHINE_NAME=default
REM Run this command to configure your shell:
REM FOR /f "tokens=*" %i IN (''docker-machine env'') DO %i
Entonces estás listo. En mi caso, necesitaba iniciar mi máquina virtual ejecutando Docker Quickstart Terminal.
Esto funcionó para mí:
- Eliminé todas las interfaces de host solo de mi virtualbox (VirtualBox => Preferences => Network => Host-only networks).
-
rmdir.exe --ignore-fail-on-non-empty ~/.docker/
-
docker-machine start
-
docker-machine env
-
eval $("C:/Program Files/Docker Toolbox/docker-machine.exe" env default)
(agregado también al final de mi.bash_profile
. -
docker run hello-world
<- ahora rorking
Inspirado en un post aquí .
Intente de esta manera / solución:
- En primer lugar, asegúrese de que haya ca.pem, cert.pem, key.pem, ca-key.pem en $ yourhome / .docker / machine / certs / folder, para estos cuatro archivos perdidos * .pem, puede copiarlos de otros lugares o tal vez crearlos ustedes mismos (estos cuatro archivos pem seguramente no son correctos al principio)
- asegúrese de que env está configurado correctamente en bash_profile, como: export DOCKER_HOST = tcp: //192.168.99.100: 2376 export DOCKER_MACHINE_NAME = predeterminado export DOCKER_TLS_VERIFY = 1 export DOCKER_CERT_PATH = / Users / johnwang / .docker / machine / machines
- vuelva a ejecutar el cmd: docker-machine regenerate-certs predeterminado (tal vez antes de ejecutar esto, necesita volver a abrir el terminal de la ventana acoplable) Probado en la caja de herramientas de la ventana acoplable en mac, y funciona.
- Finalmente, algunos registros del resultado: Error al verificar la conexión TLS: Error al verificar y / o regenerar los certificados: Se produjo un error al validar los certificados del host "192.168.99.100:2376": x509: certificado firmado por una autoridad desconocida. Puede intentar regenerarlos. utilizando ''docker-machine regenerate-certs [nombre]''. Tenga en cuenta que esto activará un reinicio del demonio Docker que podría dejar de ejecutar contenedores. ... ... johns-MacBook-Pro: certs johnwang $ docker-machine regenerate-certs predeterminado Regenerate TLS machine certs? Advertencia: esto es irreversible. (y / n): y Regeneración de certificados TLS En espera de que SSH esté disponible ... Detectando el aprovisionador ... Copiando certificados en el directorio de la máquina local ... Copiando certificados en la máquina remota ... Configurando la configuración de Docker en el control remoto daemon ... johns-MacBook-Pro: certs johnwang $ docker-machine ls NOMBRE ACTIVE DRIVER STATE URL ERRORES DE DOCKER SWARM predeterminados - virtualbox Ejecutando tcp: //192.168.99.100: 2376 v17.03.1-ce
Espero que ayude también a ver mi respuesta aquí: https://github.com/docker/machine/issues/2808
La forma en que me aseguro de poder conectarme a las máquinas de mi docker es asignándoles una IP fija (y regenerando los certificados solo una vez) (no es necesario reiniciar)
Después de eso, el docker-machine ls
siempre funciona.
Mi guión actual:
(Reemplace %PRGS%/dm/latest
por la ruta donde se encuentra docker-machine.exe
en su máquina)
(asegúrese de que PATH
incluya la última / ruta / a / git / usr / bin , para que los comandos como ssh estén disponibles)
> more dmvbf.bat
@echo off
setlocal enabledelayedexpansion
set machine=%1
if "%machine%" == "" (
echo dmvbf expects a machine name
exit /b 1
)
set ipx=%2
if "%ipx%" == "" (
echo dmvbf x missing ^(for 192.168.x.y^)
exit /b 2
)
set ipy=%3
if "%ipy%" == "" (
echo dmvbf y missing ^(for 192.168.x.y^)
exit /b 3
)
%PRGS%/dm/latest/docker-machine.exe ssh %machine% "sudo sh -c ''echo /"kill /$(more /var/run/udhcpc.eth1.pid)/" | sudo tee /var/lib/boot2docker/bootsync.sh >/dev/null''"
%PRGS%/dm/latest/docker-machine ssh %machine% "sudo sh -c ''echo /"ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up/" | sudo tee -a /var/lib/boot2docker/bootsync.sh >/dev/null''"
%PRGS%/dm/latest/docker-machine ssh %machine% "sudo chmod 755 /var/lib/boot2docker/bootsync.sh"
%PRGS%/dm/latest/docker-machine ssh %machine% "sudo cat /var/run/udhcpc.eth1.pid | xargs sudo kill"
%PRGS%/dm/latest/docker-machine ssh %machine% "sudo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up"
Por ejemplo:
dmvbf default 99 100
docker-machine regenerate-certs -f default
Eso asignará 192.168.99.100
a la máquina de conexión por default
''por default
'', y regenerará los certificados una vez.
Luego, cada vez que se llama a docker-machine ls
, se mostrará la misma IP para '' default
''.
Por favor, intente regenerar certificados manualmente por:
docker-machine --debug regenerate-certs -f default
y compruebe si hay errores para corregir, luego intente de nuevo:
docker-machine --debug env default
Si falla en ssh, copie y pegue ese comando en la terminal para ver cuál es el problema agregando extra -vv
.
Si tienes:
debug1: conectarse a la dirección 127.0.0.1 puerto 64368: conexión rechazada
entonces su máquina no se está ejecutando ( docker-machine ls
en docker-machine ls
), así que intente:
docker-machine start
A continuación, intente ssh a través de:
docker-machine -D ssh default
Tengo este problema también. Ejecutar docker-machine regenerate-certs <vm-name>
no puede resolver el problema. Busco en Google la información de error y encuentro la solución a continuación.
- ejecute
sudo ifconfig vboxnet0 up
en el terminal. - mostrar el estado de la máquina docker:
docker-machine ls
. - ahora
STATE
yURL
están bien.
Pero reinicie el sistema este problema persiste.
GitHub emite enlace que encontré aquí.
Parece que hay un bug en VirtualBox 5.1.24.