1、什么是Docker?mysql
Docker是一个开源的应用容器引擎,能够轻松地为任何应用建立一个轻量级、可移植、自给自足的容器。开发者在本地编译测试经过的容器能够批量地在生产环境中部署,包括虚拟机和其余平台。redis
咱们能够将本身的应用以及依赖的环境一块儿打包到一个容器中,而后这个容器就能够很容易的放到其余机器上运行。并且很是易于装载、复制、移除。sql
之前的部署方式就是每次部署应用的时候都须要在电脑上重复地走一下部署流程,好比下载安装环境、依赖框架、搭建服务等。可是有了Docker容器技术,咱们无需重复的操做,只须要一次打包,到处运行,并且每一个容器之间都是隔离的环境,互不影响。docker
2、虚拟机和Docker对比windows
在上图中,容器是一个应用层抽象,用于将代码和依赖资源打包在一块儿。多个容器能够在同一台机器上运行,共享操做系统内核,但各自做为独立的进程在用户空间中运行。与虚拟机相比,容器占用的空间较少,瞬间就能完成启动。服务器
虚拟机则是一个物理硬件层抽象,用于将一台服务器变成多台服务器,管理程序容许多个虚拟机在一台机器上运行,每一个虚拟机都包含一个独立的操做系统、一个或多个应用、必要的二进制文件和资源库。所以占用大量空间,启动也十分缓慢。架构
因为容器所须要的资源要比虚拟机少(虚拟机须要一个完整的系统环境),因此它们易于部署且快速启动。框架
特性 | 容器 | 虚拟机 |
启动速度 | 秒级工具 几秒内就能够启动性能 |
分钟级 有时候须要长达十几分钟才能启动,具体看环境安装资源大小而定 |
存储空间占用 | 通常为MB为单位 | 须要的空间至少G单位的空间 |
性能 | 接近原生,基本没有其余的消耗 | 操做系统会占用较多的资源 |
系统支持量 | 一台普通的服务器能够支持上千个容器 | 通常最多支持几十个虚拟机,并且看电脑配置而定 |
3、抛开虚拟机面向Docker容器
如今大应用不断增长,容器化是技术发的必然趋势,容器技术也会不断地进化,因此咱们要把容器技术用起来,就从Docker开始!
有不少小伙伴都以为用这个有必定地门槛,安装太麻烦,固然,这也是误区。
有些人认为用Docker很麻烦,只有大公司用,或者学习这个成本很高,认为对现有系统、架构改造太大,成本过高等等,这些都是误区。
4、Docker的三个基本概念
一、镜像
Docker镜像是一个特殊的文件系统,除了提供容器运行时所须要的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数。镜像不包含任何动态数据,其内容在构建后也不会改变。
咱们能够简单的理解,镜像就像是一个什么环境、依赖资源、文件和你的应用程序都跟你打包的一个文件系统。就相似于操做系统同样,操做系统也是由C盘下的Windows文件夹和其余系统文件组成的同样,要运行操做系统,确定是须要这些资源、文件、依赖都存在,你能够理解为这一整套文件系统就是镜像。
二、容器
容器和镜像的关系就像是面向对象程序中的实例和类同样,类是静态的,实例是经过类运行起来才有的。运行起来的程序才有进程。
容器你能够理解为运行起来的镜像,好比,一套系统程序也是由不少个文件、资源、依赖组成,那么把它完整的一套说法相似叫镜像。若是系统程序没有运行起来,它其实也是放在硬盘上的系统文件而已。而容器,就是表示把系统程序运行起来,至关在电脑里开一个进程,运行起来的系统程序咱们称之为容器。你能够这么想:针对同一套系统程序你能够运行多个,就是有多个进程。对于容器来讲,你也能够同时运行多个同一个镜像的容器,这方便咱们作集群。
三、仓库
镜像咱们构建好后,能够很容易的在当前的操做系统上运行,可是若是须要在其余服务器上使用这个镜像,咱们就须要一个集中存放、分发镜像的一个服务中心。
就相似于咱们开发了一套程序,文件、依赖、资源都打包在一块儿了,这样很快的能够在本机运行,可是你要用,我是否是须要上传到一个软件管理服务网站,你下载就好了,对吧。若是另一我的也有一套程序给你用,那么那我的也能够先上传到软件管理服务网站,而后你下载,那么这个软件管理服务网站,在Docker里叫作仓库服务中心,固然,上面举的例子不必定符合Docker概念,但能够做为理解仓库意思的参考,Docker里的仓库是放镜像的,与咱们传统的仍是有区别的。
每一个仓库能够包含多个标签,每一个标签对应一个镜像,一般一个仓库包含同一个软件不一样版本的镜像,而根据标签来区分软件的各个不一样版本。若是咱们要使用仓库里的镜像,通常都会指定一个标签用于指定软件版本,若是不指定标签则用最新的一个版本。
5、下载安装和运行Docker(这里用Docker提供的Docker for Windows为例,Docker ToolBox适用于Windows 10如下的系统,我本人是Window 10)
Docker 是一个应用容器引擎,确定须要安装才能使用。
Docker能够运行在Linux上,也能够运行在Windows上,在这里,目前以Windows环境为例,后面再说Linux上的Docker使用,通常在Linux上运用Docker居多。
要在Windows上运行Docker,须要知足下面几个条件:
一、Windows 10 64位:Pro、Enterprise或Education (Build 14393或更高版本)
二、在BIOS中启用虚拟化。通常默认是启用的
下载安装后须要重启电脑,若是运行遇到报错能够根据错误提示来进行修改环境,常见的以下:
启用Hyper-V
下载地址:https://pan.baidu.com/s/12XeL11JHxsCVvOCxM3r5gA 提取码: n3gw (官方地址有点慢,这里就不放地址了,直接进入Docker官网便可,也能够用阿里云提供的:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/)
安装成功后,桌面会有一个Docker图标:
双击运行后,右下角会多出一个托管图标:
右键:
点击Settings进入设置面板:
界面左下角有个绿色图标+Docker running,表示Docker已经正常运行起来了。
在后面的使用中,咱们会用到不少不一样的镜像,可是因为Docker 提供的镜像仓库中心是国外地址,下载镜像对于咱们来讲就很慢,咱们能够经过修改Docker配置文件或图形化操做来添加了个镜像加速配置。咱们国内的有不少大厂提供了容器加速地址,好比阿里云、腾讯等。
在这里我用阿里云的:https://mtlxrshz.mirror.aliyuncs.com
若是是Windows 10的用户则直接如下操做:修改registry-mirros节点。
修改后重启Docker服务便可。
重启后咱们能够小试一下:
打开Windows PowerShell 工具
打开后,输出命令 docker Image ls 表示输出当前已经存在的镜像列表如:
这是我本机的,我上面装载了rabbitmq、mysql和redis经常使用的服务工具镜像。
好了,后续我就接着为你们介绍Docker的经常使用命令、如何拉取镜像和运行容器等。