本文主要介绍Docker在Windows下的安装。关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com 。安装环境:Windows7。
Docker引擎使用了一个定制的Linux内核,所以要在Windows下运行Docker我们需要用到一个轻量级的虚拟机(vm),我们使用Windows Docker客户端以控制Docker引擎,来创建,运行和管理我们的Docker容器(关于Docker引擎,容器等具体概念请参考官网)。
安装步骤
第一步:
首先到https://github.com/boot2docker/windows-installer/releases页面去下载最新的Windows Docker客户端,目前最新版本为v.1.0.0,下载过来就是一个exe文件,直接双击运行。
图1.Windows下的Docker安装文件
第二步:
执行安装文件。
图2.安装文件中的3个主要部分
安装过程一路点击下一步,在第3步中我们可以看到实际上安装的内容包括了3部分,第一是Docker在Windows下的脚本和虚拟机,第二是Oracle的VirtualBox,第三是MSYS,是Windows下的最优秀的GNU环境之一。
这里我们都勾选,全部安装。一路下一步后等待安装结束,安装程序提示重新启动,为了保证安装成功避免意外,这里重新启动。
第三步:
默认会在桌面生成两个快捷方式,Docker的客户端和VirtualBox,双击Docker的客户端,第一次运行时会在VirtualBox中安装boot2Docker-vm虚拟机,安装成功以后自动启动(这里不需要用户每次到VirtualBox中手动启动boot2Docker-vm虚拟机,执行Docker客户端后虚拟机自动启动)。
图3.客户端安装虚拟机并连接成功的界面
到图3就已经安装成功了。
图4.测试,登录Docker,成功
安装过程中可能遇到的问题:
第一次启动的过程中客户端可能会出现boot2Docker-vm is not running,这表示虚拟机的安装有问题,我们可以尝试手动到VirtualBox中去启动。
图5.手动启动boot2Docker-vm虚拟机,双击
此时VirtualBox会报错,错误码为E_FAIL (0x80004005),弹窗如下图所示,提示“不能为虚拟电脑boot2Docker-vm打开一个新任务”。
图6.可能出现的错误(图片来自网络)
图7.这里是更详细的错误(图片来自网络)
错误原因,遇到这个错误一般来说都是宿主机的因特尔虚拟技术(Intel Virtual Technology)未开启的原因。
解决方法,重启电脑,系统启动前进入BIOS界面,启动Intel Virtual Technology,如下图所示(不同的BIOS系统在不同位置,不过大同小异)。
图8.进入BIOS启动Intel Virtual Technology(图片来自网络)
退出BIOS,保存设置并重启机器,再次启动Docker客户端即可。
Docker的Hello World
第一步:
在运行使用Docker之前,我们先来创建一个Docker账户,以便我们能使用Docker Hub,Docker Hub是Docker的核心库,它帮助我们管理Docker及其组件。
它还提供了主镜像,用户授权,自动化的镜像和像build triggers和web hooks等工作流工具,还有对GitHub和BitBucket整合等。
我们可以直接登录Docker的官网来注册账号,或者直接通过命令来注册。
$ sudo docker login
第二步:
简单的输出Hello World的命令
$ sudo docker run ubuntu:14.04 /bin/echo 'Hello World'
运行如下:
图9.Hello World
第一次使用该命令时,Docker会从云端将ubuntu的image(ubuntu的Docker镜像)检出到本地。
该命令完成了一个简单的功能,但是Docker内核做的工作包括依赖镜像的检出,容器的创建和销毁等都已经有了。有关此命令的详细解释请访问Docker官网。
以上就是Docker在Windows下的安装以及Hello World。
本文目录如下:
windows下安装docker的方法应该参考Docker官网,之前参考的是网上其他人翻译的博客,出了一些问题,后来发现,是由于docker更新速度较快,安装官网的方法最为妥当!
下面引用Docker 中文指南中的几个提示:
提示1:Docker 已经在windows7.1和windows 8上通过测试,当然它也可以在低版本的windows上使用。但是你的处理器必须支持硬件虚拟化。
提示2:Docker 引擎使用的是Linux内核特性,所以我们需要在 Windows 上使用一个轻量级的虚拟机 (VM) 来运行 Docker。我们使用 Windows的Docker客户端来控制 Docker 虚拟化引擎的构建、运行和管理 。
提示3:为了简化这个过程,我们设计了一个叫 Boot2Docker 的应用程序,你可以通过它来安装虚拟机和运行 Docker。
提示4:虽然你使用的是 Windows 的 Docker 客户端,但是 docker 引擎容器依然是运行在 Linux 宿主主机上(现在是通过Virtual box)。直到我们开发了 windows 版本的 Docker 引擎,你只需要在你的 Windows 主机上启动一个 Linux 容器。
参考Install Docker for Windows,即按照该网站的步骤一步步按照即可,该网站的教程非常详细
(1)64为操作系统,win7或者更高
(2)支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用
即安装Docker Toolbox,同时还附加安装
1.进入Docker Toolbox的下载网页,选择windows版本下载
2. 下载完成后,双击安装文件
3. 一路Next,接受所有默认安装
注意:在安装过程中,会出现几个其他的安装过程,如Ocracle Corporation等系列软件,全部选择安装即可,下面是几个小例子:
另外,如果你安装了360,它可能会阻止程序的安装,应该注意允许程序安装
4. 最后Finish
5. 整个安装过程非常简单,安装完成后,可以在桌面得到如下的三个图标:
1.点击Docker Quickstart Terminal图标,从而打开一个Docker Toolbox terminal
- 打开terminal后,terminal会自动进行一些设置,需要点时间,全部完成后,会出现如下的结果
3.在$后输入各种docker命令就可以使用docker了
注:不需要像ubuntu中那样使用sudo!
例如:
(1)查看docker的版本信息
docker info
docker login
然后,输入用户名和密码,例如
个人觉得:在使用docker时,是否登陆没有特别大的影响,只不过是,如果登陆了,就可以向docker hub上push自己的镜像了
按照上面方法打开Docker Toolbox terminal后,发现在该终端中,无法进行复制、粘贴等操作,使用起来非常不方便,所以,这里参考zistxym的博文,安装远程连接工具SecureCRT
使用SecureCRT即与使用Docker Quickstart Terminal的作用相同
关于SecureCRT的几点设置
(1)使用中发现,secureCRT的鼠标右键功能默认是粘贴的功能,用起来和windows系统的风格不一致,如果要改为右键为弹出文本操作菜单功能,方便对选择的内容做拷贝编辑操作,可以在options菜单—-》global options——》terminal——-》mouse功能块处将paste on处改为:right button
此时,再鼠标右键时,弹出了文本操作功能的菜单,如下:
(2)更改secureCRT的字体和背景
仅是更改当前section的字体
全部安装完成后,打开Docker Quickstart Terminal,可能会出现如下错误:
这是因为电脑没有开启支持VT-X/AMD-v功能,即没有开启虚拟化技术,需要重启电脑,去BIOS里开启该功能
在利用image生成镜像时,发生了如下错误
flag provided but not defined:
以为是因为docekr service和client的版本不同,各种查询折腾,也没有成功,最后发现,居然是命令中-v和路径之间少了空格!都怪自己没有仔细查看错误提醒
~~~~~~~~~~
如果本机安装的docker过期了,也就是有新版本的docker发布时,应该对本机的docker进行更新,否则很可能会影响它的继续使用,那么,对本机的docker进行更新可以安装下述方式:
(1)打开Docker Quickstart Terminal终端
(2)输入命令:docker-machine upgrade default
会开始自动更新本机的docker,如下图所示
(3)查看docker版本
docker version
我使用的image中带有jupyter,但发现按照ubuntu下的使用方法,即进入容器后,打开http://0.0.0.0:8888/无法打开Jupyter,经过一番查询才终于找到正解,原来jupyter的image中就有明确说明,但没有想到去那里查询!
具体方法:
(1)打开boot2docker,输入docker-machine ip
,会返回一个IP地址,例如
$ docker-machine ip myjupytermachine
192.168.99.104
(2)在浏览器中打开http://192.168.99.104:8888,即可打开jupyter
而不是与ubuntu中一样的http://localhost:8888 (http://0.0.0.0:8888/)
详细内容与ubuntu下的使用方法类似,见Docker学习系列(三):Ubuntu下使用Docker的基本指令记录及一些注意事项,但为了查阅方便,这里再单独列举
docker images
docker ps
docker pull 镜像名称
docker run -it --rm -p 8888:8888 -v /c/Users/tingting/dropbox/code:/root/opt/workspace -v /c/Users/tingting/dropbox/data:/root/data tingtinglu/caffe_mxnet
(1)利用参数 -v
(2)冒号前为宿主机目录,必须为绝对路径
① /c/Users/tingting/dropbox/code
:
本机的C:\Users\tingting\dropbox\code
文件夹
② /c/Users/tingting/dropbox/data
本机的C:\Users\tingting\dropbox\data
文件夹
(3)冒号后为镜像内挂载的路径
① /root/opt/workspace
docker中的文件夹/root/opt/workspace
② /root/data
docker中的文件夹/root/data
(4)这里的本机文件夹为c盘,那么,能否为d盘呢?
测试:
docker run -it --rm -p 8888:8888 -v /d/Dropbox/code:/root /opt/workspace -v /d/Dropbox/data:/root/data tingtinglu/caffe_mxnet
发现并不可行!这是因为目前,windows下只支持c盘下的文件夹映射