原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94
首先先理解Docker
Windows专业版上安装Docker时,本质上是借助于Windows平台的hyper-v技术来创建一个Linux虚拟机,你所输入的所有的命令,都是借助于虚拟机中所部署的Docker引擎(服务端)进行执行的,所有Pull到本地的镜像数据,都是存储到对应的虚拟机目录里面;
而这其实也恰恰符合Docker的作风,毕竟Docker在运行时分为Docker引擎(也就是服务端守护进程)和客户端工具,而我们每次敲下的Docker命令,实际上是通过Docker引擎(服务端)所提供的一组REST API来进行的交互,表面上来看我们是在和本机执行各种docker操作,而实际上一切都是在通过远程调用的方式来实现的;正是基于Docker的这种 C/S架构,Docker才可以在各种系统上无缝的运行,其在Windows上之所以能够运行的原理也是这样的;
Windows本身先虚拟化一个Linux服务器,而Docker引擎的服务端,实际上就是安装于本地的Windows的Linux虚拟机上!而我们每次通过本地的PowerShell或者CMD也好,本质上也只是把所输入的docker 命令,通过https的方式发送到了我们本机的虚拟机上才产生了一系列的交互;
但实际上,Docker引擎服务还是只能运行在Linux上,之所以能在Winidows本机运行,是因为Windows本机也安装了对应的Linux虚拟机程序;所以!这其中Docker是在Windows专业版上运行,还是在Windows家庭版上运行,唯一的区别和变量就是,虚拟机!这也是Windows家庭版和专业版唯一的区别所在了;
由于Windows专业版上具备Hyper-V技术(windows自身的虚拟机技术),所以只要开启对应的Hyper-v后,再进行一系列的安装,便可以在Windows本地使用Docker了;而Windows家庭版是不具备Hyper-V的,所以如果要在家庭版上进行Docker的安装,其首先也需要先部署一个Linux的虚拟机程序才行,那么此处则是:Oracle VM VirtualBox(一款开源的虚拟机软件);
上面所对应的阐述是很重要的哦,除了可以理解windows专业版和家庭版安装的区别,实际上更是对Docker服务引擎进一步的熟悉,因为当你理解了Docker Server和对应的Docker Client的关系后,你会发现,实际上我们后续的各种Docker的操作,Dockerfile,docker build . copy,等都是具备client - server 的思想在里面的;(docker的命令只是客户端!真正的执行则是在Docker的服务端进行的执行)! (^_−)☆
原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94
大胆剖析一下Windows版Docker安装的步骤
按照对应的理解:当我们在家庭版上进行docker的安装的时候,对应的安装步骤:
1、先安装 Oracle VM VritualBox
2、再进行 Docker Server引擎的部署至对应的虚拟机中,
3、再进行本地Windows的安装(此时的安装是将对应的Docker命令进行本地Windows的安装)使其CMD,PowerShell也好等客户端,可以识别出对应的Docker命令规范,使其在客户端执行对应的命令时,可以进行对应的识别,并将对应的命令及信息通过https发送到对应的Docker引擎上;
那么我们真正的安装时,真的是这么麻烦吗?当然不是啦,真正安装时,我们只需要下载一个对应的安装包,进行无脑next next finish 就行啦;
那为什么上面还扯这么多呢?第一:是因为明白上述的安装步骤对后续的使用具备很大的指导意义,第二:当你把所对应的安装包安装完以后,你会发现存在对应的三个应用程序,当然啦!因为一个是虚拟机,一个是客户端!一个是GUI啦!所以,在明确上述的整体过程后,实际上对所安装后所出现的应用就不会感觉到陌生了;
Windows Docker家庭版安装包下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ (选择最新的进行下载就好啦,阿里的服务器,应该是在持续的维护当中的)
安装过程中,你可能会出现一些问题,当然,每个人都会在安装的时候出现一些问题,甚至于每个人的问题应该都不一样,不过此处还是推荐一篇文章:如果是第一次安装的话,可以参考下该文章进行解决下对应的Error:https://www.cnblogs.com/jimmyshan-study/p/11161428.html ,我在进行对应的安装的时候,出现的问题和当前博客中所说明的问题还是不太一样的,不过凭借着基本的一些认知,最终还是顺利安装完成了;
安装完成后
安装完成后,一般则是会有三个服务,分别是:Oracle VM VirtualBox,docker-quickstart-terminal,Kitematic.exe,;
docker-quickstart-terminal.就不用说了,这个就是你启动Docker时的应用程序(不过本人此处docker-quickstart-terminal是无效的);
此处重点说明下,对应的Oracle VM VirtualBox 和 Kitematic 应用程序;
Oracle VM VirtualBox
截图如下:
当你正常进行了docker的安装后,以及可以在cmd等控制台可以正常输出docker --version,此时说明你的Docker 服务端引擎是正常运行的状态,如上图所示,可以看到Oracle VM VirtualBox管理器,包含的
第一个虚拟机实例 “default” 是不可以被删除的,因为当前 default 的Linux虚拟机实例,便是进行安装包安装时,直接部署进当前VirtualBox的默认实例,(该Linux虚拟机内所部署的Docker引擎会随着虚拟机的启动而自动启动,所以不用担心无法启动Docker引擎的问题,只要能够保证当前虚拟机实例是启动的即可)
而当我们把当前Linux虚拟机实例进行暂停的时候,则会出现的现象是什么?
此处我们将对应的Docker虚拟机进行暂停,此时再进行 docker 的命令,会发现存在异常提示,异常内容如下:HTTPS://IP:PORT 链接没有响应,此处则充分说明了,当前的Docker引擎的实际使用方式,的确是 Client - Server 通过 REST API进行的交互方式!(^_−)☆;
Kitematic (Alpha)
Kitematic是Docker的一款GUI工具,界面很优雅,用着很舒服,只要简单的点点点,就可以实现容器的自启,pull镜像等基本操作,并且可以进行容器的相关配置等功能,界面很暖,使用起来也是很舒服的,详情如下图所示:
可参考链接:
https://www.cnblogs.com/jimmyshan-study/p/11161428.html
https://www.cnblogs.com/brock0624/p/9792203.html
原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94