Windows环境安装Docker经验分享

    目前网上的教程中,多是在Mac或Linux平台上安装docker的,毕竟在这类平台上docker的优势才能完全的显示出来,而windows平台的docker是跑在Oracle VBOX上面的,所以并不能体现出性能上的优势。但是由于本人乃屌丝版的初级程序猿,手头电脑均为Windows所以在这个平台上安装,主要的目的也就是为了学习。下面就是具体的内容了。

    docker在Windows平台上运行主要由三个部分组成,非别是docker、Oracle VBOX、git,而在安装过程中遇到的各种大坑多是由于Oracle VBOX这个变态的东西造成的。再次说明这个玩意就是一个大变态,分分钟被他玩成脑残。

    安装docker的步骤:

    1.操作系统必须为Win7.1或Win8.1,就目前的盗版环境来看,雨林木风等盗版团体出品的镜像基本可以满足这一需求,但是这也为后面的一个大坑埋下了伏笔

    2.保证自已的电脑是可以进行虚拟化的,CPU支持,BIOS开启,检测方式,Win8通过任务管理器可以查看,而Win7可以通过下载 Microsoft® Hardware-Assisted Virtualization Detection Tool现在地址:http://www.microsoft.com/en-us/download/details.aspx?id=592 来进行检查,如果你的电脑上已经安装了VM那么此步骤可以跳过,具体原因不解释。

    3.下载docker-install.exe地址:https://github.com/boot2docker/windows-installer/releases/download/v1.7.0/docker-install.exe 这个安装程序包含四个部分Boot2Docker、Boot2Docker Management Tool、Virtual Box、MSYS-git、如果你的环境中已经安装的VBOX和git那么后面这两个无法安装,你也不需要选择,如果你没有安装VBOX那么恭喜你,噩梦开始了(此处强烈建议单独下载VBOX4.3.12版本,单独安装,在保证VBOX可以正常运行的前提下再安装docker,使用正版系统的壕们请放心大胆的朝前走、朝前走,莫回呀头)。

    4.点击图片所示的这个玩意

        Desktop

        如果你点击之后出现的CMD窗口,并闪退,难么恭喜你,噩梦真的开始了。

        闪退是怎么回事呢,筒子们一定很惊讶,我们打开了右键,发现这个快捷方式的指向是一个“x:\xxxxxxx\Boot2Docker for Windows\start.sh”,

        然后我们可以通过CMD打开提示行窗口,发现,在命令行中执行这个批处理文件后,提示的内容竟然是这样的,initializing...       error in run: Failed to initialize machine "boot2docker-vm": exit status 1   

        好吧既然如此,那我只能看批处理文件了,通过阅读批处理文件,我们发现出现问题的原来是这个指令echo 'initializing...'    ./boot2docker.exe init

        而直接运行这个指令,发现错误依然出现,而且依然是那句话,接下来只能求助于boot2docker.exe --help了,通过这个,我发现了一个类似于神器一样的参数,  -v,  这个参数竟然可以打印出详细的情况,一头的雾水终于可以Say Goodbye了。

        原来错误是这样的

Git commit: 43241cb
2015/04/03 11:57:06 executing: E:\Developer\Oracle\VirtualBox\VBoxManage.exe showvminfo boot2docker-vm --machinereadable
2015/04/03 11:57:06 executing: E:\Developer\Oracle\VirtualBox\VBoxManage.exe showvminfo boot2docker-vm --machinereadable
2015/04/03 11:57:06 executing: E:\Developer\Oracle\VirtualBox\VBoxManage.exe list vms
VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code E_INVALIDARG (0x80070057) - One or more arguments are invalid (extended info not available)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.
error in run: Failed to initialize machine "boot2docker-vm": exit status 1

        原来是VBoxManage.exe运行出错了。然后由翻了一遍位于用户文件夹下的.VirtualBox,里面的日志,这样的错误

VirtualBox COM Server 4.3.12 r93733 win.amd64 (May 16 2014 13:57:11) release log
00:00:00.007000 main     Log opened 2015-07-10T14:43:00.054934600Z
00:00:00.007000 main     Build Type: release
00:00:00.007000 main     OS Product: Windows Vista Ultimate Edition
00:00:00.007000 main     OS Release: 6.0.6000
00:00:00.007000 main     OS Service Pack: 
00:00:00.026001 main     DMI Product Name: All Series
00:00:00.035002 main     DMI Product Version: System Version
00:00:00.035002 main     Host RAM: 8097MB total, 5247MB available
00:00:00.035002 main     Executable: C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
00:00:00.035002 main     Process ID: 6760
00:00:00.035002 main     Package type: WINDOWS_64BITS_GENERIC
00:00:00.037002          Loading settings file "c:/Users/Administrator/.VirtualBox\VirtualBox.xml" with version "1.12-windows"
00:00:00.490028          HostDnsMonitorProxy: Host's DNS information updated:
00:00:00.490028          DNS server 1: 202.96.64.68
00:00:00.490028          DNS server 2: 202.96.69.38
00:00:00.491028          VDInit finished
00:00:00.509029          ERROR [COM]: aRC=VBOX_E_OBJECT_NOT_FOUND (0x80bb0001) aIID={fafa4e17-1ee2-4905-a10e-fe7c18bf5554} aComponent={VirtualBox} aText={Could not find a registered machine named 'boot2docker-vm'}, preserve=false
00:00:00.577033          ERROR [COM]: aRC=VBOX_E_OBJECT_NOT_FOUND (0x80bb0001) aIID={fafa4e17-1ee2-4905-a10e-fe7c18bf5554} aComponent={VirtualBox} aText={Could not find a registered machine named 'boot2docker-vm'}, preserve=false
00:00:01.037059          ERROR [COM]: aRC=E_FAIL (0x80004005) aIID={480cf695-2d8d-4256-9c7c-cce4184fa048} aComponent={SessionMachine} aText={This machine does not have any snapshots}, preserve=false
00:00:01.612092          ERROR [COM]: aRC=E_FAIL (0x80004005) aIID={480cf695-2d8d-4256-9c7c-cce4184fa048} aComponent={SessionMachine} aText={This machine does not have any snapshots}, preserve=false
00:00:02.869164          ERROR [COM]: aRC=VBOX_E_OBJECT_NOT_FOUND (0x80bb0001) aIID={480cf695-2d8d-4256-9c7c-cce4184fa048} aComponent={SessionMachine} aText={No storage device attached to device slot 0 on port 0 of controller 'SATA'}, preserve=false
00:00:02.875164          ERROR [COM]: aRC=VBOX_E_OBJECT_NOT_FOUND (0x80bb0001) aIID={480cf695-2d8d-4256-9c7c-cce4184fa048} aComponent={SessionMachine} aText={No storage device attached to device slot 0 on port 0 of controller 'SATA'}, preserve=false
00:00:07.961455 Watcher  ERROR [COM]: aRC=E_ACCESSDENIED (0x80070005) aIID={fafa4e17-1ee2-4905-a10e-fe7c18bf5554} aComponent={VirtualBox} aText={The object is not ready}, preserve=false


        这是就只有Google才能为我解忧了,发现貌似是Windows破解主题的Dll文件导致了这个问题,这时我终于明白了正版的重要性。

        而网上说这个问题可以通过提权和兼容性来解决,于是,我们将VBoxManage.exe提权,并设置了兼容运行方式再次运行,init步骤终于通关了

        但是在start的环节再次遇到了问题,提示的问题居然是虚拟机已经启动,不能再次启动了,想了想不至于啊,刚刚初始化的docker虚拟机竟然启动了,这是什么鬼啊

        于是,调用boot2docker.exe info,查看状态,发现状态竟然是Power off,这可真是闹鬼了,再次运行boot2docker.exe start,提示依然是已经启动,不能再次启动,WTF

        实在不行了,反正这个命令的意思是启动VBox的docker虚拟机,我直接用VBOX手动启动,这是才发现,原来是VBOX在捣鬼,直接用VBOX启动依然有问题,提示错误是0x80004005,shit。这时黔驴技穷只能再次求助Google大神,发现有人说是Vbox的版本问题,4.3.12版本是不会出现这种问题的,下载之后,重新安装,调用boot2docker delete删除创建的虚拟机,再次运行start.sh。非常顺畅的  init OK!   start OK!  IP  OK!   SSH  ?   Oh  No~~~~~~~~~~

        无法通过SSH连接到docker虚拟机,原因是本机未安装ssh,这时想到了在安装git的过程中,有一个选项是这个样子的。它就放在我的面前,我没有选择,此时追悔莫及,只能重装git选择这个选项了,当然选择了这个之后会询问你安装什么样的SSH,选择OpenSSH就好。

        搞定了这里,再次boot2docker.exe delete,  start.sh,终于全部OK见到了这个如愿以偿的界面

        具体docker该如何使用,大家可以等我研究明白了,我再分享。

        再次郑重的提示,  请单独提前安装VBOX 4.3.12版本,并确保可以正常使用,   单独提前安装git并确保安装了Unix tools,这样,邮件里提到的这些坑将不复存在,另外请记住  -v  神参数,如果不信邪,我奉劝你:你这是自寻死路~~~~~~~


转载于:https://my.oschina.net/u/2318910/blog/479385

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值