检查TLS连接时出错:检查和/或重新生成证书时出错

问题描述 投票:26回答:10

重新启动Windows后,我无法连接到在Oracle Virtual Box中运行的docker机器。当我启动Docker QuickStart终端时,每件事看起来都很好,它就会出现,它会给我这样的信息:

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

但当我这样做时:

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

和:

λ 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.

当我尝试重新初始化我的环境时,我得到:

λ 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.

BTW,再生证书也没有帮助。任何的想法?

谢谢。

docker docker-machine
10个回答
0
投票

只需启动docker机器,然后重新生成证书

docker-machine start <machine-name>

docker-machine regenerate-certs <machine-name>

它对我来说就像一个魅力。


0
投票

我确保能够连接到我的docker机器的方式是assigning them a fixed IP(并且仅重新生成一次证书)(不需要重新启动)

在那之后,docker-machine ls总能工作。

我目前的剧本: (用%PRGS%\dm\latest在你机器上的路径替换docker-machine.exe) (确保PATH包含latest /path/to/git/usr/bin,对于像ssh这样的命令可用)

> 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"

例如:

dmvbf default 99 100
docker-machine regenerate-certs -f default

这会将192.168.99.100分配给docker机器'default',并重新生成一次证书。 然后每次调用docker-machine ls时,它将为'default'显示相同的IP。


0
投票

试试这种方式/解决方法:

  • 首先确保在$ yourhome / .docker / machine / certs /文件夹下有ca.pem,cert.pem,key.pem,ca-key.pem,对于这些丢失的四个* .pem文件,你可以从其他文件复制它们放置或者自己创建它们(这四个pem文件在开始时肯定不正确)
  • 确保在bash_profile中正确设置了env,如:export DOCKER_HOST = tcp://192.168.99.100:2376 export DOCKER_MACHINE_NAME = default export DOCKER_TLS_VERIFY = 1 export DOCKER_CERT_PATH = / Users / johnwang / .docker / machine / machines / default
  • 重新运行cmd:docker-machine regenerate-certs默认值(也许在运行之前,你需要重新打开docker终端)试用mac上的docker工具箱,它可以工作。
  • 最后一些结果日志:错误检查TLS连接:错误检查和/或重新生成证书:验证主机“192.168.99.100:2376”的证书时出错:x509:由未知权限签名的证书您可以尝试重新生成它们使用'docker-machine regenerate-certs [name]'。请注意,这将触发Docker守护程序重启,这可能会停止运行容器。 ...... johns-MacBook-Pro:证书johnwang $ docker-machine regenerate-certs默认重新生成TLS机器证书?警告:这是不可逆转的。 (y / n):y重新生成TLS证书等待SSH可用...检测供应商...将证书复制到本地计算机目录...将证书复制到远程计算机...在远程计算机上设置Docker配置daemon ... johns-MacBook-Pro:certs johnwang $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Running tcp://192.168.99.100:2376 v17.03.1-ce

希望它也有助于在这里看到我的回应:https://github.com/docker/machine/issues/2808


0
投票

在我的情况下,我的FortiClient导致了这个问题。禁用后,docker-machine env default再次正常工作。我建议你检查你的系统中是否有运行的防病毒程序。


0
投票

对我来说,跑步

docker-machine --debug regenerate-certs -f name_of_your_vm

工作得很好。

docker-machine version 0.16.1
virtualBox 6.0

docker也配置为使用IP 192.168.99.100的默认机器

© www.soinside.com 2019 - 2024. All rights reserved.