Docker学习系列(一):windows下安装docker

来源:互联网 发布:同济大学软件学院就业 编辑:程序博客网 时间:2024/06/05 14:21

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.windows按照docker的基本要求

(1)64为操作系统,win7或者更高 
(2)支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用

2.具体安装步骤

即安装Docker Toolbox,同时还附加安装

  • Docker Client for Windows
  • Docker Toolbox management tool and ISO
  • Oracle VM VirtualBox
  • Git MSYS-git UNIX tools 
    不用担心,下载的Docker Toolbox已经完全包含了这几个软件,直接安装就可以了

1.进入Docker Toolbox的下载网页,选择windows版本下载 
这里写图片描述
2. 下载完成后,双击安装文件 
3. 一路Next,接受所有默认安装 
这里写图片描述 
这里写图片描述 
这里写图片描述 
这里写图片描述 
这里写图片描述 
这里写图片描述

注意:在安装过程中,会出现几个其他的安装过程,如Ocracle Corporation等系列软件,全部选择安装即可,下面是几个小例子: 
这里写图片描述 
这里写图片描述 
另外,如果你安装了360,它可能会阻止程序的安装,应该注意允许程序安装 
这里写图片描述 
4. 最后Finish 
这里写图片描述 
5. 整个安装过程非常简单,安装完成后,可以在桌面得到如下的三个图标: 
这里写图片描述

3.开始使用

1.点击Docker Quickstart Terminal图标,从而打开一个Docker Toolbox terminal 
这里写图片描述 
- 打开terminal后,terminal会自动进行一些设置,需要点时间,全部完成后,会出现如下的结果 
这里写图片描述
3.在$后输入各种docker命令就可以使用docker了 
注:不需要像ubuntu中那样使用sudo! 
例如: 
(1)查看docker的版本信息

docker info
  • 1
  • 1

这里写图片描述
(2)登陆docker Hub的账号

docker login
  • 1
  • 1

然后,输入用户名和密码,例如 
这里写图片描述
个人觉得:在使用docker时,是否登陆没有特别大的影响,只不过是,如果登陆了,就可以向docker hub上push自己的镜像了

4.安装远程连接工具连接docker

按照上面方法打开Docker Toolbox terminal后,发现在该终端中,无法进行复制、粘贴等操作,使用起来非常不方便,所以,这里参考zistxym的博文,安装远程连接工具SecureCRT

  • 下载SecureCRT 
    地址:绿盟SecureCRT绿色版免安装,不知道为什么,有时这两个链接提示有病毒,所以,再提供一个百度云盘的链接,提取码:rm3g
  • 运行SecureCRT 
    这里写图片描述
  • 连接docker 
    这里写图片描述
    这里写图片描述
    注:默认的用户名和密码是: docker/tcuser

  • 使用SecureCRT即与使用Docker Quickstart Terminal的作用相同 
    这里写图片描述
    这里写图片描述

    • 再使用SecureCRT连接docker时,必须要先启动Docker Quickstart Terminal
  • 关于SecureCRT的几点设置 
    (1)使用中发现,secureCRT的鼠标右键功能默认是粘贴的功能,用起来和windows系统的风格不一致,如果要改为右键为弹出文本操作菜单功能,方便对选择的内容做拷贝编辑操作,可以在options菜单—-》global options——》terminal——-》mouse功能块处将paste on处改为:right button 
    这里写图片描述
    此时,再鼠标右键时,弹出了文本操作功能的菜单,如下: 
    这里写图片描述
    (2)更改secureCRT的字体和背景 
    这里写图片描述
    这里写图片描述
    仅是更改当前section的字体 
    这里写图片描述

5.安装中遇到的问题

全部安装完成后,打开Docker Quickstart Terminal,可能会出现如下错误: 
这里写图片描述 
这是因为电脑没有开启支持VT-X/AMD-v功能,即没有开启虚拟化技术,需要重启电脑,去BIOS里开启该功能

在利用image生成镜像时,发生了如下错误

flag provided but not defined:

以为是因为docekr service和client的版本不同,各种查询折腾,也没有成功,最后发现,居然是命令中-v和路径之间少了空格!都怪自己没有仔细查看错误提醒 
这里写图片描述 
~~~~~~~~~~ 
这里写图片描述

6.Docker的更新

如果本机安装的docker过期了,也就是有新版本的docker发布时,应该对本机的docker进行更新,否则很可能会影响它的继续使用,那么,对本机的docker进行更新可以安装下述方式: 
(1)打开Docker Quickstart Terminal终端 
(2)输入命令:docker-machine upgrade default 
会开始自动更新本机的docker,如下图所示 
这里写图片描述 
(3)查看docker版本

docker version
  • 1
  • 1

这里写图片描述

这里写图片描述

7.Docker中的jupyter

我使用的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/)

8.windows下使用docker的常用命令

详细内容与ubuntu下的使用方法类似,见Docker学习系列(三):Ubuntu下使用Docker的基本指令记录及一些注意事项,但为了查阅方便,这里再单独列举

  • 查看本机images
docker images
  • 1
  • 1
  • 查看本机运行的container
docker ps
  • 1
  • 1
  • 从dockerhub上pull 镜像
docker pull 镜像名称
  • 1
  • 1
  • 利用image运行container:
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
  • 1

(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
  • 1
  • 1

发现并不可行!这是因为目前,windows下只支持c盘下的文件夹映射

9.Docker虚拟机文件地址修改

默认情况下,docker-machine创建的虚拟机文件,是保存在C盘的C:\Users\用户名\.docker\machine\machines\default 目录下的,如果下载和使用的镜像过多,那么必然导致该文件夹膨胀过大,如果C盘比较吃紧,那么我们就得考虑把该虚拟机移到另一个盘上。具体操作如下:

1.使用docker-machine stop default停掉Docker的虚拟机。

2.打开VirtualBox,选择“管理”菜单下的“虚拟介质管理”,我们可以看到Docker虚拟机用的虚拟硬盘的文件disk。

3.选中“disk”,然后点击菜单中的“复制”命令,根据向导,把当前的disk复制到另一个盘上面去。

4.回到VirtualBox主界面,右键“default”这个虚拟机,选择“设置”命令,在弹出的窗口中选择“存储”选项。

5.把disk从“控制器SATA”中删除,然后重新添加我们刚才复制到另外一个磁盘上的那个文件。

这是我设置好后的界面,可以看到我在步骤3复制的时候,复制到E:\VirtualBox\default\dockerdisk.vdi文件去了。

image

6.确定,回到PowerShell,我们使用docker-machine start default就可以启动新地址的Docker虚拟机了。确保新磁盘的虚拟机没有问题。就可以把C盘那个disk文件删除了。

【注意:不要在Window中直接去复制粘贴disk文件,这样会在步骤5的时候报错的,报错的内容如下,所以一定要在VirtualBox中去复制!】

Failed to open the hard disk file D:\Docker\boot2docker-vm\boot2docker-vm.vmdk. Cannot register the hard disk 'D:\Docker\boot2docker-vm\boot2docker-vm.vmdk' {9a4ed2ae-40f7-4445-8615-a59dccb2905c} because a hard disk C:\Users\用户名\.docker\machine\machines\default\disk.vmdk' with UUID {9a4ed2ae-40f7-4445-8615-a59dccb2905c} already exists. Result Code: E_INVALIDARG (0x80070057) Component: VirtualBox Interface: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554} Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

10.镜像加速

在国内使用Docker Hub的话就特别慢,为此,我们可以给Docker配置国内的加速地址。我看了一下,DaoCloud和阿里云的镜像加速还不错,另外还有网易的蜂巢。选一个就行了。以DaoClound为例,注册账号,然后在https://www.daocloud.io/mirror 就可以看到DaoClound提供给您的镜像加速的URL。然后到PowerShell中去依次执行:

docker-machine ssh default sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile exit docker-machine restart default

这样重启Docker后就可以用国内的镜像来加速下载了。

试一下下载一个mysql看看快不快:

docker pull mysql

下载完镜像,我们运行一个容器:

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123 mysql:latest

接下来我们打开windows下的mysql客户端,服务器地址填docker虚拟机的IP地址,通过docker-machine env可以看到,我这里是192.168.99.100,然后用户名root,密码123,这样我们就可以连接到docker容器里面的mysql了。

【注意,Docker容器是在VirtualBox的虚拟机里面,不是在Windows里面,所以不能用127.0.0.1访问】


转自:http://blog.csdn.net/tina_ttl

0 0
原创粉丝点击