admin管理员组文章数量:1602430
目前网上的教程中,多是在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/en-us/download/details.aspx?id=592 来进行检查,如果你的电脑上已经安装了VM那么此步骤可以跳过,具体原因不解释。
3.下载docker-install.exe地址:https://github/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.点击图片所示的这个玩意
如果你点击之后出现的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/u/2318910/blog/479385
版权声明:本文标题:Windows环境安装Docker经验分享 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728411090a1157279.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论