容器技术并非什么新概念,只不过最近几年随着云计算的火热,变得被你们所熟知。最先于1979年诞生的chroot技术,容器技术又称为容器虚拟化。
虚拟化就是经过虚拟化技术将一台实体计算机虚拟为多台逻辑计算机,虚拟后的每一台逻辑计算机均可以运行不一样的操做系统,每个逻辑计算机都是一个虚拟的实体,相互独立,相互隔离。虽然经过虚拟技术能够运行虚拟计算机,可是他们并非在真实的基础上运行的。mysql
虚拟化就是表示计算机资源的一种抽象方式,它是一系列虚拟技术的集合,如:硬件虚拟化技术,处理器虚拟化技术,指令虚拟化技术,软件虚拟化技术等。git
对于计算机领域,虚拟化技术主要分为两类,一类是硬件虚拟化,一类是软件虚拟化,容器技术属于软件虚拟化。github
为何使用容器?redis
与传统软件开发,运维相比,容器技术能够更高效的构建,维护管理应用。举个例子,传统软件开发,应用上线,中间须要好多麻烦的过程,须要安装各类相关依赖软件,而后测试,发布,本地测的好好,上线好发现运行不起来,定位环境问题至关麻烦,相信你们都深有体会。sql
使用容器技术后,咱们能够把应用依赖的软件以及资源都放到一个集装箱里,docker的图标就是集装箱。运维只须要一个简单的命令就可一把它发布到各个服务器,并且不担忧水土不服,这样会节省大量的时间。mongodb
docker其实很是简单,你用到的命令也不过十几条。docker
Docker是一个构建,发布,运行分布式应用的平台,Docker平台总体能够当作是由Docker引擎,Docker Registry两部分组成。Docker引擎的底层是各类操做系统以及云计算基础设施,而上层则是各类应用程序和管理工具,每层之间都经过API来通讯的。服务器
Docker引擎能够简单的理为Docker服务端程序,他让你能够运行基于docker构建的应用,它是一个cs架构的软件。当你运行docker version时,就会看到两大部分,client和server。经过client的指令经过API,咱们能够直接和后台守护进程的server通讯交互。架构
daemon就是一个守护进程,它是整个docker的核心引擎,在0.9版本以前,客户端和服务端是赞成在一个二进制文件中,后来为了根号的管理,划分为4个二进制文件:docker,containerd,docker-containerd-shim和docker-runc。运维
分开以后,守护进程与容器管理再也不相互牵制,使得docker技术变得更人性化。
docker镜像是Docker系统中的构建模块,是启动一个Docker容器的基础。
Docker镜像分层构建,从底层到上层,咱们写的Dockerfile,就是镜像构建步骤。
容器是docker的核心,根据镜像文件描述,docker会建立一个容器,你不用关心它内部有些什么,你只要知道它提供了你的应用程序所需的全部资源,你能够很方便的管理它。从宿主机来看,它只是一个简单的用户进程而已。
相信你们对github都陌生,它是一个开源代码托管仓库,docker仓库和它的做用同样,无论他存放的是镜像。这样你就能够很方便的把你的镜像分享给其余人,不过你须要把你的镜像上传到docker的公开仓库去。在你本地也可建立私有仓库,方便不一样服务器的应用发布。
学习使用docker成本并不高,基本看看操做指令,了解下docker是干吗的就能上手了,若是你想要了解核心原理,那须要花不少时间。
你的应用程序之前是怎么写的如今依然怎么写,只是最后为它写一个Dockerfile,告诉docker该怎么启动这个应用,这个应用须要哪些软件,好比mysql,jdk,tomact,redis,mongodb等,docker会自动帮你安装这些,并在容器中帮你启动,这样你的应用就能够不运行环境为头疼了。
在其余服务起安装,也不须要从前同样先去手动安装一些软件,配置好环境。直接运行镜像就行了,全部东西都已经放到集装箱里了,你所要作的只是把它搬运过去就行了。
今天只是个简单的介绍,下节课就来安装使用它。欢迎关注个人公中号:mike啥都想搞
,一块儿交流学习