gpt4 book ai didi

适用于 Windows 的 Docker 无法正常工作

转载 作者:IT老高 更新时间:2023-10-28 12:33:59 27 4
gpt4 key购买 nike

我现在已经安装了 Docker 工具箱,但我得到了所有错误:

Get http://127.0.0.1:2375/v1.20/version: dial tcp 127.0.0.1:2375: ConnectExtcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

docker 版本 输出:

Client:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:49:29 UTC 2015
OS/Arch: windows/amd64
Get http://127.0.0.1:2375/v1.20/version: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

但是虚拟机在 VirtualBox 下运行。我到处搜索,但找不到解决方案。

UPDATE1:我使用的是 Windows 8.1,也尝试通过 Kinematic 启动。

UPDATE2:当我尝试 Virtualbox Test Build 5.0.3 或更高版本时,一切都像魅力一样。您可以在这里下载:https://www.virtualbox.org/wiki/Testbuilds

最佳答案

只要运行:

"C:\Program Files\Docker Toolbox\docker-machine" ls

获取机器名,然后运行:

"C:\Program Files\Docker Toolbox\docker-machine" env <MACHINE_NAME_HERE> --shell=[cmd|powershell]

你应该得到这样的东西:

"C:\Program Files\Docker Toolbox\docker-machine" env default --shell=cmd
set DOCKER_TLS_VERIFY=1
set DOCKER_HOST=tcp://192.X.X.X:2376
set DOCKER_CERT_PATH=C:\Users\X\.docker\machine\machines\default
set DOCKER_MACHINE_NAME=default
# Run this command to configure your shell:
# copy and paste the above values into your command prompt

我也得到一个错误open C:\Users\X\.docker\machine\machines\default\server.pem: The system cannot find the file specified. 并通过将我的 VirtualBox 升级到 5.0.3 版(从他们的 nightly builds )解决它

加长版:

我遇到了同样的问题,之后,installation manual 中的“在 Windows 命令行提示符 (cmd.exe) 中使用 Docker”部分让我朝着正确的方向前进

基本上,docker 的工作方式是将“docker”命令传递给 docker 服务(在端口 2375 上运行)。当您从 windows 主机运行 docker 时,该服务实际上运行在 docker 创建的 linux 主机上(您可以通过打开 virtualbox ui 看到它)。

通常的流程如下:

  1. 创建默认机器
  2. 机器的启动器(kinamatic/"Docker Quickstart Terminal"/cmd)等待机器启动,获取它的 IP 地址并将 linux ip:port 设置为服务地址(而不是 127.0.0.1:2375)在少数环境/powershell 变量中
  3. 从这一点开始,所有 docker ... 命令都发送到 linux 主机,一切都几乎与原生 linux 一样工作

问题是机器设置存在一些问题(我猜是新的虚拟盒子,但我不确定,有时间深入研究它)。您可以通过运行 ls 命令看到这一点,并注意到(至少在我的情况下)机器的状态是“超时”并且没有 url,这与手册中显示的输出不同。

这会导致环境值未设置并且 docker ... 命令失败。

除了运行命令之外,你还可以启动 Docker Quickstart Terminal 做同样的事情,但使用 sh shell

关于证书错误,我尝试使用以下方法从虚拟机中重新生成证书:

/usr/local/bin/generate_cert --overwrite --host=default,127.0.0.1,10.0.2.15,192.168.99.100 --ca=/var/lib/boot2docker/tls/ca.pem --ca-key=/var/lib/boot2docker/tls/cakey.pem --cert=/var/lib/boot2docker/tls/server.pem --key=/var/lib/boot2docker/tls/serverkey.pem

我在尝试将证书复制到主机时遇到“协议(protocol)错误”,这让我想起了一个旧的 virtualbox 共享文件夹错误,所以这可能不是 docker 的问题,而是 virtualbox 的问题 - 我升级到了最新的 nightly版本(5.0.3-102224),重新生成了默认图像,这似乎解决了它。由于 docker 和 virtualbox 都没有正式支持 windows 10,我不确定这是否是导致您收到证书错误的同一件事,无论如何都可以尝试从虚拟机复制证书(您有代码块中的路径)到您的本地用户目录(它映射到虚拟机中的/c/Users/X/)

关于适用于 Windows 的 Docker 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047660/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com