1. 什么是docker

docker是一门虚拟化容器技术,其设计理念是"build once, run anywhere"(一次构建,到处运行),听起来,是不是跟java的"wirte once, run anywhere"(一次编写,到处运行)很像?那么,什么是虚拟化容器技术呢?docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器,程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。正如开篇第一张图docker的标志一样,docker就是这条鲸鱼,其上驮着的集装箱,就是一个个互相隔离的容器,你可以随时往上添加集装箱,不会影响到原有集装箱里的内容。

2. docker和虚拟机的区别

docker 和传统虚拟化方式的不同之处,传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,共享宿主机的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
[图片上传失败...(image-926fd8-1572257136481)]

3. 安装docker

docker可以在各个操作系统上安装,过程很简单,安装教程请看这里:https://www.runoob.com/docker/windows-docker-install.html。
docker在windows上安装是一件麻烦事,但不想在vm虚拟机中的linux上安装因为懒得开,所以还是在windows上安装了,windows上有两种安装方法:
docker toolbox:这个安装包适用于所有windows版本(windows xp的当我没说),包括win7, win8, win10家庭版。我就是安装的这个版本docker for windows:这个版本适合win10专业版,因为win10专业版带有Hyper-v虚拟化功能,安装前需要开启该功能,具体看上面的安装链接。

3.1. 安装docker toolbox遇到的问题

这是安装docker toolbox遇到的卡在下载boot2docker.iso的问题,安装docker其他版本的这节可以忽略不看。
docker toolbox安装完成后,会有如下三个图标,
[图片上传失败...(image-6ed3d3-1572257136481)]
启动docker需要点击Docker Quickstart,其会查找指定目录下的boot2docker.iso(一个轻量级的linux虚拟机)文件,并根据该文件创建一个名为default的linux虚拟机,初次点击时找不到该文件,会从github下载,但docker下载速度相当慢,等了个把小时都无法完成。提示如下:
Running pre-create checks... (default) No default Boot2Docker ISO found locally, downloading the latest release... (default) Latest release for github.com/boot2docker/boot2docker is v1.12.1 (default) Downloading C:\Users\huang\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v1.12.1/boot2docker.iso...
解决方案是:使用浏览器(或者迅雷)到boot2docker的主页下载最新版boot2docker.iso,地址:(https://github.com/boot2docker/boot2docker/releases),如下图:
20191028104542.png
下载完成后断开网络,将下载好的boot2docker.iso放到提示的位置,我这里是:C:\Users\huang\machine\cache\目录。记住要断开网络,重新点击Docker Quickstart图标启动docker即可,启动完成即可连接网络,开始学习docker了。

3.2. boot2docker

对boot2docker感兴趣的可以看看其github的介绍,boot2docker是一个轻量级的、用于运行docker容器的linux系统,完全在内存中运行,大小只有45m左右,启动迅速。所以在windows中运行docker,其原理是使用启动了一个linux虚拟机,该虚拟机中安装了docker,点击Docker Quickstart后,我们可以看到控制台的输出,该虚拟主机名为default,默认的ip是192.168.99.100。再从github中的介绍可以看到,该虚拟机有docker用户,密码为tcuser。因此,我们可以从secureCRT或者git bash中使用ssh登录到该机器,在上面使用docker命令。当然你可以在default虚拟机中安装vim等工具,但是由于其是内存操作系统,重启后这些新安装的工具都会消失。
20191028111854.png
远程登录命令:
ssh docker@192.168.99.100 # 密码 tcuser

3.3. docker阿里云镜像加速

这一节可以暂时不看,等你觉得docker下载太慢时,可以看我的另一篇文章,配置镜像加速,地址为:https://www.jianshu.com/p/aff1a4a471de

4. docker架构