1.Docker溯源
Docker的前身是名为dotCloud的小公司,主要提供的是基于 PaaS(Platform as a Service,平台及服务)平台为开发者或开发商提供技术服务,并提供的开发工具和技术框架。因为其为初创的公司,又生于IT行业,dotCloud受到了IBM,亚马逊,google等公司的挤压,发展举步维艰。于是,在2013年dotCloud 的创始人,年仅28岁的Solomon Hykes做了一个艰难的决定:将dotCloud的核心引擎开源!然而一旦这个基于 LXC(Linux Container)技术的核心管理引擎开源,dotCloud公司就相当于走上了一条"不归路"。可正是这个孤注一掷的举动,却带来了全球技术人员的热潮,众程序员惊呼:太方便了,太方便了。也正是这个决定,让所有的IT巨头也为之一颤。一个新的公司也随之出世,它就是:Docker。可以说,Docker是一夜成名的!!
2.Docker认识
2.1镜像,容器,仓库
首先,需要了解一下几个概念:镜像,容器,仓库
镜像(image):Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。镜像是一种文件结构。Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。Docker官方网站专门有一个页面来存储所有可用的镜像,网址是:index.docker.io。
容器( Container):容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker 利用容器来运行应用。
仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。
2.2Docker定义
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是Docker提出的"Build once,Run anywhere"
Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。注意:Docker不是容器,而是管理容器的引擎!
Docker中文手册上解释说:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
从这里我们可以看出,Docker并非是容器,而是管理容器的引擎。Docker是为应用打包、部署的平台,而非单纯的虚拟化技术。
3.Docker安装
3.1下载和安装Docker Toolbox
从Docker官网可以下到Docker Toolbox:https://www.docker.com/products/docker-toolbox,选择windows版本下载。
双击下载好的程序:
你可通过CMD查看docker是否安装成功,输入docker-machine,出现版本等信息,安装能够运行,还会给出一些选项,包括machine安装路劲等: -s, --storage-path "C:\Users\wcc335836929\.docker\machine" Configures storage path [$MACHINE_STORAGE_PATH]
在使用Docker前,要先创建docker machine,它其实是台虚拟机,不过在使用它的时候,你可能根本察觉不出来它是虚拟的。默认情况下,docker machine的所有文件都会保存在用户的根目录下,一般是在C盘,如果就用默认的位置,C盘的空间会越来越小,所以最好还是换个地方。 点击Git Bash,在起开所有docker应用之前需要先使用这个才能更改成功,修改默认的default machine的路径,不然,默认安装在C盘,会使C盘空间越来越小。
然后,输入 notepad .bash_profile 创建和打开.bash_profile 配置文件
然后,在空白处输入(因为我想将以后的镜像都安装到E盘,此处可以修改你喜欢的盘符):
export MACHINE_STORAGE_PATH='E:\docker'
然后,关闭后,在E盘创建名为docker的文件夹,在其下创建名为cache的文件夹,将安装文件下的boot2docker.iso拷贝到该文件夹:
在Git Bash中输入更改路径命令,此处使用阿里云的加速器,因为在使用docker的时候,会需要从docker的网站下载镜像文件,下载速度可能会很慢。获得阿里云加速,需要登录阿里云开发者平台,然后点击右侧的管理中心(当然你得要有一个账户):
阿里云开发者平台:https://dev.aliyun.com/search.html
然后点击加速,Windows
复制红色方框中的代码,然后修改为如下(根据自己盘符修改):
现在就可以在Git Bash中运行了:
docker-machine -s "E:\docker" create --engine-registry-mirror=https://rf483vio.mirror.aliyuncs.com -d virtualbox default
因为本机已装过,所以显示上图;
需要注意的是:
如果开启了电脑自带的虚拟机:Hyper-V,需要关闭,否则在安装时会报错,提示你禁用Hyper-V;查询是否禁用:
上面都搞定,正常安装截图:
虚拟机中出现如下界面:
此时可以点击Docker Quickstart Terminal:
同时,Docker Quickstart Terminal也已经登录进去:
也可以在Git Bash中运行:
docker-machine ls
这里面就是一个linux风格的Docker环境,提示的IP:192.168.99.100就是Docker虚拟机的IP了。
这台docker machine创建后就启动了,如果下次我们再打开电脑,想要启动docker machine,可以打开Docker Quickstart Terminal或者Git Bash,然后执行下面的命令:
docker-machine start
来启动docker machine。
3.3利用ssh软件登录
SSH登录虚拟机(此处使用的XShell软件,自行百度下载,当然还有其他的ssh软件):
docker machine的IP是192.168.99.100,用SSH工具登录它,用户名是docker
,密码是tcuser
登录后界面: