我现在已经安装了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?
Run Code Online (Sandbox Code Playgroud)
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?
Run Code Online (Sandbox Code Playgroud)
但VM在VirtualBox下运行.我到处搜索但找不到解决方案.
更新1:我正在使用Windows 8.1,也试图通过Kinematic开始.
UPDATE2:当我尝试Virtualbox Test Build 5.0.3或更高版本时,一切都像魅力一样.你可以在这里下载:https://www.virtualbox.org/wiki/Testbuilds
Sim*_*imY 62
赶紧跑:
"C:\Program Files\Docker Toolbox\docker-machine" ls
Run Code Online (Sandbox Code Playgroud)
获取机器名称,然后运行:
"C:\Program Files\Docker Toolbox\docker-machine" env <MACHINE_NAME_HERE> --shell=[cmd|powershell]
Run Code Online (Sandbox Code Playgroud)
你应该得到这样的东西:
"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
Run Code Online (Sandbox Code Playgroud)
我也得到一个错误open C:\Users\X\.docker\machine\machines\default\server.pem: The system cannot find the file specified.
并通过将我的VirtualBox升级到5.0.3版本(从他们的夜间版本)解决了它
长版:
我遇到了同样的问题,然后安装手册中的"从Windows命令行提示符(cmd.exe)使用Docker"部分让我朝着正确的方向前进
基本上,docker的工作方式是将"docker"命令传递给docker服务(在端口2375上运行).当您从Windows主机运行docker时,该服务实际上在docker创建的linux主机上运行(您可以通过打开virtualbox ui来查看它).
通常的流程如下:
docker ...
命令都发送到linux主机,一切都像本机linux一样工作问题是机器设置存在一些问题(我猜测新的虚拟盒子,但我不确定并且有时间深入研究它).您可以通过runnung看到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
Run Code Online (Sandbox Code Playgroud)
当我尝试将证书复制到主机时,我收到了"协议错误",这提醒我一个旧的虚拟机共享文件夹错误,所以这可能不是docker的问题,而是使用virtualbox - 我升级到最新的每晚版本(5.0) .3-102224),重新生成默认图像,似乎解决了它.由于windows 10还没有得到docker和virtualbox的正式支持,我不确定这是否与导致你获得证书错误相同,无论如何都可以尝试从虚拟机中复制证书(你有到代码块中的路径到本地用户目录(它映射到虚拟机中的/ c/Users/X /)
小智 8
以下对我有用(Docker Toolbox 1.8.1b和Windows 7).它是@ baptiste-gaillard在上述评论中概述的简化版本.简答:从一开始就使用VirtualBox 5.03或更高版本.
对于创建必需的TLS密钥,QuickBox文件似乎与VirtualBox 5.03相处得更好.
和你出现的问题一样,几个小时前修好了.
所有需要做的就是禁用Hyper-V.使用管理员权限运行命令提示符并运行以下命令:
bcdedit /set hypervisorlaunchtype off
Run Code Online (Sandbox Code Playgroud)
在重新启动后重新启动PC,打开virtualbox并删除默认vm,返回docker quickstart终端并在命令中输入以下内容:
docker run hello-world
Run Code Online (Sandbox Code Playgroud)
你完成了!希望它能解决你的问题
小智 5
这对我有用
1)首先启动命令行工具,然后运行获取机器的ip地址
docker-machine ls命令
2)重新生成证书docker-machine regenerate-certs
3)在我的情况下手动设置evn变量证书的位置是不同的
设置DOCKER_TLS_VERIFY = 1
设置DOCKER_HOST = tcp:// machine_IP:2376
设置DOCKER_CERT_PATH = C:\ Users\X.docker\machine\certs
设置DOCKER_MACHINE_NAME =默认值
现在运行docker版本
这是我的输出
客户:版本:1.8.1 API版本:1.20 Go版本:go1.4.2 Git commit:d12ea79内置:星期四8月13日02:49:29 UTC 2015 OS/Arch:windows/amd64
服务器:版本:1.8.1 API版本:1.20 Go版本:go1.4.2 Git commit:d12ea79内置:星期四8月13日02:49:29 UTC 2015 OS/Arch:linux/amd64
归档时间: |
|
查看次数: |
69964 次 |
最近记录: |