Windows的Docker无法正常工作
我现在已经安装了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 version
输出:
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?
但是VM在VirtualBox下运行。我到处搜索,但找不到解决方案。
:我正在使用Windows 8.1,并且还尝试通过Kinematic进行启动。
回答:
赶紧跑:
"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=cmdset 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(从他们的每晚构建版本中)解决了
我遇到了同样的问题,之后,安装手册中的“从Windows命令行提示符中使用Docker(cmd.exe)”部分将我引向正确的方向。
基本上,docker的工作方式是将“
docker”命令传递到docker服务(在端口2375上运行)。从Windows主机运行docker时,该服务实际上在docker创建的linux主机上运行(您可以通过打开virtualbox
ui看到它)。
通常的流程如下:
- 默认计算机已创建
- 机器的启动器(动态/“ Docker Quickstart Terminal” / cmd)等待机器启动,获取其IP地址并将linux ip:port设置为服务地址(而不是127.0.0.1:2375) / powershell变量
- 从这一点开始,所有
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
尝试将证书复制到主机时出现“协议错误”,这使我想起了旧的virtualbox共享文件夹错误,因此对于docker来说这可能不是问题,但与virtualbox兼容-
我已升级到最新的每晚版本(5.0
.3-102224),则重新生成了默认图片,这似乎可以解决它。由于docker和virtualbox均未正式支持Windows
10,因此我不确定这是否是导致证书错误的原因,无论如何都可以尝试从虚拟机复制证书(您已经代码块中的路径)到本地用户目录(它映射到虚拟机中的/ c /
Users / X /)
以上是 Windows的Docker无法正常工作 的全部内容, 来源链接: utcz.com/qa/410831.html