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

Haz*_*hir 27 docker docker-machine

重新启动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
Run Code Online (Sandbox Code Playgroud)

但当我这样做时:

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER   ERRORS
default   -        virtualbox   Timeout
Run Code Online (Sandbox Code Playgroud)

和:

? 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.
Run Code Online (Sandbox Code Playgroud)

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

? 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.
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

ken*_*orb 11

请尝试手动重新生成证书:

docker-machine --debug regenerate-certs -f default
Run Code Online (Sandbox Code Playgroud)

并检查要修复的任何错误,然后再试一次:

docker-machine --debug env default
Run Code Online (Sandbox Code Playgroud)

如果它在ssh上失败,请将该命令复制并粘贴到终端,通过添加额外来查看问题是什么-vv.

如果你有:

debug1:连接到地址127.0.0.1端口64368:连接被拒绝

那你的机器没有运行(检查docker-machine ls),所以试试:

docker-machine start
Run Code Online (Sandbox Code Playgroud)

然后尝试通过以下方式ssh:

docker-machine -D ssh default
Run Code Online (Sandbox Code Playgroud)


Haz*_*hir 9

在做了一些研究之后,我发现以下解决方法可以解决现在的问题:

  1. 打开网络与共享中心

  2. 单击"更改适配器设置"

  3. 查看是否有任何已启用的适配器,例如VPN或VM Ware网络适配器.

  4. 尝试禁用它们并尝试再次连接到您的容器

  5. 如果在禁用其他适配器时它不起作用,请重新启动电脑 - 在我的情况下,这对我有用.

  • 我试过的时候,确实有效.下次它发生时我会再试一次,看看是否可重复. (2认同)

mun*_*nsu 8

对我有用的是来自 docker-machine 存储库的答案:

docker-machine regenerate-certs --client-certs [name]
Run Code Online (Sandbox Code Playgroud)

基本上,过期的是客户端证书。我从 docker-machine 收到的错误消息与您的类似(即,没有表明需要重新生成客户端证书)。


Pab*_*o A 5

这为我工作:

  • 从我的virtualbox中删除了所有仅主机的接口(VirtualBox => Preferences => Network => Only-hosts网络)。
  • 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)(还在我的末尾添加了.bash_profile
  • docker run hello-world <-现在在咆哮

这里启发了一个帖子