docker学习(一):入门概念篇

最近呢,由于工作原因,开始接触docker,现在呢,就把这两天学到的东西记录一下,不对的地方欢迎指正哦。

提到docker,首先得知道它是个什么东西吧,官方一点的说呢,docker是一个开源的应用容器引擎,需要注意的是,docker本身不是容器,它是创建容器的工具。说到这儿就得了解一下容器和虚拟机的区别以及docker的三大核心了。

Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

首先,简单说一下容器和虚拟机的区别:

1、启动速度方面,docker是秒级别的,虚拟机是分钟级别的,快的不是一点点。

2、系统支持量方面,一个系统能支持上千个容器,但是只能支持几十上百个虚拟机。

3、内存占用方面,虚拟机动不动就是多少多少个G的,而容器都是MB级别的大小。

4、方便,这也是最大的优势。比如说,你要将工程打包到另一台机器上进行测试,如果用虚拟机,那么你需要将工程用到的工具都给装一遍,用到mysql,得装mysql,用到oracle,就得装oracle,还得注意版本的差异。这还是只是一台机器,如果有很多台呢?但是如果用docker的话,就会便捷许多,你只需要将几行代码就能将你需要的环境给启动好。

其次呢,说一说docker的三大核心:镜像,容器和仓库。

镜像是docker运行容器的前提,仓库是存放镜像的场所。

  镜像(Image):docker镜像可以看做是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

  容器(Container):简单来说就是根据镜像模板创建出来的实体,是镜像的一个运行实例。所不同的是,镜像只是静态的只读文件,而容器带有运行时需要的可写文件层。

  仓库(Repository):类似于代码仓库,是docker集中存放镜像文件的场所。

第一次看到这些概念的时候都会非常的懵懂,不能完全的理解,我就举个简单的栗子。

  比如说我曾经住在云南,建了一栋小别墅,由于某种原因,我要搬到上海去,但是呢我还是想住和云南住的一模一样的别墅,这个时候怎么办呢?以前的方法就是拿着这别墅的建造图纸,记录下用的材料等等,到上海再重新建。但是,现在就方便多了,直接将云南的别墅复制一份,把它变成“镜像”,放到背包里面,到上海的时候,再打开背包,把别墅的“镜像”再复制出来,就能省去一大堆的麻烦事。

  是不是立马就能感受到容器相比于虚拟机的优势了呢。

  上面的栗子中,复制放到背包里的镜像别墅就相当于docker镜像,存放镜像别墅的背包就相当于docker仓库,而从背包辅助出来的别墅就是docker容器了。

  不仅如此,如果突然想住别人搭好的房子了,又该怎么办呢?

  Docker Hub Registry——docker的官方镜像仓库,除了托管着docker官方的镜像外,还有着许多企业和个人上传的镜像,很多你需要的镜像都能在上面找到。

虽然上面说了很多docker的好处和优势,但docker也有着本身的缺陷和弱势之处。

 1、Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用

 2、隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库

 3、LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的

 4、docker的运行环境,内核必须支持cgroups和命名空间。

  但是呢,上面的都不是最大的问题,当想要将docker应用到具体的业务实现,就会发现存在困难,docker在编排、管理和调度等方面,都是不太容易的。这就凸显了docker的主要缺陷点:实现负载均衡和分布式。所以呢,迫切的需要一套管理系统,来对docker及容器进行更高级和更灵活的管理。

  这时候k8s,应运而生。会在以后的博客详细说明。

  总的来说,容器还是优于虚拟机的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值