由于Docker引擎的守护进程使用的是Linux的内核,所以我们不能够直接在windows中运行docker引擎。而是需要运行Docker Machine命令docker-machine,在你的机器上创建和获得一个Linux虚拟机,用这个虚拟机才可以在你的windows系统上运行Docker引擎。对于Windows用户来说,使用docker toolbox来安装docker是最简单的方式。

下面我们开始一步步进行学习。首先,我们安装docker toolbox搭建环境,接下来使用docker引擎在容器中运行镜像,最后实战,构建一个Redis服务镜像。

使用docker toolbox安装docker

docker toolbox是一个工具集,它主要包含以下一些内容: 
- Docker CLI 客户端,用来运行docker引擎创建镜像和容器 
- Docker Machine. 可以让你在windows的命令行中运行docker引擎命令 
- Docker Compose. 用来运行docker-compose命令 
- Kitematic. 这是Docker的GUI版本 
- Docker QuickStart shell. 这是一个已经配置好Docker的命令行环境 
- Oracle VM Virtualbox. 虚拟机

第一步:检查你当前的windows系统是否符合要求:

为了运行Docker,你的机器必须是windows7或以上版本的64bit系统,另外,你的机器必须支持硬件虚拟化技术(Hardware Virtualization Technology)并且已被启用。(什么是硬件虚拟化技术)对于windows10系统来说,你可以在 任务管理器->性能 中查看到你的电脑是否开启了虚拟化,如下图: 

Docker系列(2):Windows下安装Docker_Redis

第二步:安装Docker Toolbox:

Docker Toolbox完全安装后系统将会安装以下几个软件: 
- Windows版的Docker客户端 
- Docker Toolbox管理工具和ISO镜像 
- Oracle VM Virtualbox 
- Git MSYS-git Unix 工具

如果你的电脑已经安装了Virtualbox,那么不需要再重新安装Oracle VM Virtualbox,在安装的时候取消勾选就可以了(如果你的Virtual box正在运行,那么要先关闭掉它然后再重新运行安装) 
Docker系列(2):Windows下安装Docker_Redis_02 
具体安装步骤如下: 
1. 打开Docker Toolbox页面 
2. 点击installer链接进行下载 
3. 双击安装包进行安装Docker Toolbox 
4. 点击下一步,进行安装

安装完成后,你会在你的电脑桌面上看到新增了三个图标: 
Docker系列(2):Windows下安装Docker_Redis_03 
双击Docker Quickstart Terminal图标,启动一个终端。第一次启动的话你会看到命令行会输出一些东西,你需要等待一下,它会配置Docker Toolbox,之后,当它完成后,你会看到启动成功的画面: 
Docker系列(2):Windows下安装Docker_Redis_04
这个终端是运行在bash环境下的,而不是标准的windows命令行,因为Docker需要运行在bash环境下,否则一些命令无法运行。

第三步,验证是否安装成功: 
在命令行中输入docker run hello-world并按回车键,如果docker配置成功的话,你会看到命令行中有如下输出: 
Docker系列(2):Windows下安装Docker_Redis_05 
自此,我们便在我们的windows下安装好了docker环境了。接下来我们开始使用docker引擎在容器中运行镜像。

使用docker引擎在容器中运行镜像

什么是镜像与容器

Docker引擎提供核心的Docker技术能够启动镜像和容器。在上一个教程中,我们运行了docker run hello-world命令,这个命令会被分解为三个部分 
Docker系列(2):Windows下安装Docker_Redis_06 
一个镜像是能够在运行状态下的使用一个文件系统以及它的参数。它没有状态并且不能够被改变。一个容器是一个运行状态的镜像的实例。 
当我们运行docker run hello-world命令的时候,Docker引擎会做一下三件事: 
- 检查是否你有一个hello-world软件镜像 
- 从Docker Hub上下载这个镜像(我们将在之后的教程中介绍Docker Hub) 
- 载入镜像到容器中并且运行它 
一个Docker的镜像能做非常多的事情,比如说可它可以启动一个像数据库一样复杂的软件,等待你去添加数据,存储数据等等。 
Docker运行所有人通过Docker镜像去创建和分享软件。使用Docker引擎的话,你不需要去担心是否你的电脑能够运行Docker镜像中的软件,Docker容器总是能够运行它们。

运行Docker镜像

在运行镜像之前,先让我们来知道一个获取别人已经做好的镜像的方法。因为全世界的人都能够创建Docker镜像,因此Docker提供了一个叫做Docker Hub的地方可以让人们分享自己的Docker镜像或获取别人的Docker镜像。

第一步: 找到我们需要的whalesay镜像

打开你的浏览器,并且打开 Docker Hub 地址(https://hub.docker.com/),在搜索输入框中输入whalesay,并在结果中找到docker/whalesay,如下图所示: 
Docker系列(2):Windows下安装Docker_Redis_07

点击docker/whalesay,将会看到whalesay镜像的仓库以及它的一些介绍,每一个镜像仓库都包含一些关于镜像的信息,这些信息必须包括如镜像中包含了什么软件以及如何使用它们。你可能注意到whalesay镜像是基于Linux的一个发行版Ubuntu,接下来,我们将看到如何在你的机器中运行whalesay镜像。

第二步:运行whalesay镜像

在终端中输入docker run docker/whalesay cowsay boo并且回车,这个命令将在你的容器中运行whalesay镜像,你将在终端中看到如下的输出: 
Docker系列(2):Windows下安装Docker_Redis_08 
Docker系列(2):Windows下安装Docker_Redis_09 
当你第一次运行软件镜像的时候,docker命令会先查找你本地系统中是否有这个镜像,如果镜像不存在的话,那么docker会自动从hub上获取这个镜像。 
在终端中输入 docker images 并且回车: 
Docker系列(2):Windows下安装Docker_Redis_10 
这个命令将显示出你的本地系统中有哪些景象,这个时候你将看到刚刚已经安装了docker/whalesay镜像在列表里面了。当我们在容器中运行镜像的时候,Docker会下载镜像到我们的服务器上。当镜像的源在hub上被改变的时候,Docker会下载并更新本地的镜像。

whalesay镜像是做什么的: 
可以试一下运行下面这个命令:docker run docker/whalesay cowsay hi peida,我们看到小鲸鱼说的话变成了hi peida,如下图: 
Docker系列(2):Windows下安装Docker_Redis_11

创建自己的docker镜像并且在容器中运行

在前面,我们在Docker容器中运行了whalesay镜像,但我们每次运行whalesay镜像的时候,如:

docker run docker/whalesay cowsay hi peida

我们都不得不在后面添加cowsay hi peida,才能使的whale能够打印出对应的话hi peida。 
接下来,我们将对whalesay镜像做一些修改,创建我们自己的docker镜像并且在容器中运行它,使得能够让whale每次都自动说一句话出来。

第一步:打开终端

在你的桌面中找到Docker Quickstart Terminal图标,双击图标启动Docker Quickstart Terminal。

第二步:编写一个Dockerfile文件

在这一步中,我们将使用windows的记事本来编写一个简单的Dockerfile。 Dockerfile文件描述了当我们启动镜像的时候需要哪些软件元素。除了软件元素之外,Dockerfiler还能够让我们能够在启动镜像的时候在容器中运行一些命令或者指明我们使用什么样的环境。 
1、在终端中输入 cd Desktop 转到桌面 
2、输入 mkdir peidadocker 在桌面上创建一个peidadocker文件夹 
3、输入 cd peidadocker 进入testdocker文件夹 
4、输入 touch Dockerfiler 创建一个Docker文件在当前目录。注意这里的Dockerfile的首字母是大写的(因为Linux文件名是大小写敏感的) 
5、输入 notepad Dockerfile&或者使用其他文件编器打开Dockerfile文件: 
Docker系列(2):Windows下安装Docker_Redis_12

Dockerfile文件: 
FROM docker/whalesay:latest 
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak 
RUN sed -i s:/archive.ubuntu.com:/cn.archive.ubuntu.com:g /etc/apt/sources.list 
RUN cat /etc/apt/sources.list 
RUN apt-get clean 
RUN apt-get -y update --fix-missing && apt-get install -y fortunes 
CMD /usr/games/fortune -a | cowsay 
6、保存你的Dockerfile文件

第三步: 用你的Dockerfile文件创建一个镜像

在终端中运行 docker build -t docker-whale . 命令(注意最后有一个点‘.’,表示Dockerfile文件在当前的目录下),这条命令的意思是利用当前目录下的Dockerfile来创建一个叫做docker-whale的镜像。

第四步:运行你新的docker-whale

我们先确认的电脑已经安装了新的镜像: 
Docker系列(2):Windows下安装Docker_Redis_13 
已经安装后,我们就可以运行这个新的镜像: 
Docker系列(2):Windows下安装Docker_Redis_14
多运行几次:docker run docker-whale命令,我们会看到的whale自动冒出了一句话出来,并且每次运行它都会说不同的话。

自此,我们已经创建了自己的一个镜像,并且成功的运行。

实战:构建Redis服务镜像

第一步:编辑dockerfile文件

在C:\Users\chang\Desktop\peidadocker目录中创建redis.dockerfile文件,输入一下内容: 
ROM ubuntu 
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak 
RUN sed -i s:/archive.ubuntu.com:/cn.archive.ubuntu.com:g /etc/apt/sources.list 
RUN cat /etc/apt/sources.list 
RUN apt-get clean 
RUN sudo apt-get update 
RUN apt-get -y install redis-server 
EXPOSE 6379 
ENTRYPOINT ["/usr/bin/redis-server"]

第二步:build镜像

运行docker命令:

docker build -t chang/redis -< redis.dockerfile

开始下载文件: 
Docker系列(2):Windows下安装Docker_Redis_15

第三步:启动镜像实例

运行docker run命令启动redis镜像实例: 
docker run --name redis2 -d -p 7005:6379 -m 128m chang/redis 
验证docker实例:

 docker ps

Docker系列(2):Windows下安装Docker_Redis_16

第四步:验证启动redis

1、利用redis客户端连接192.168.99.100:7005端口: 
Docker系列(2):Windows下安装Docker_Redis_17
2、添加和删除数据: 
Docker系列(2):Windows下安装Docker_Redis_18

至此,我们已经搭建了一个可以使用的redis服务。