容器化太宏观,不长篇概率,只表达个人理解,不涉及底层实现、原理,不喜勿喷。

  1. 容器是什么

    生活中容器代表某件物品能容纳、装载某些东西;如一个瓶子,可以分别装可乐、雪碧;也可以混合装白酒、红酒;此时的瓶子就是一个容器;

    在IT界中,容器是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源。

  2. Docker是什么

    docker就是IT界中容器技术实现方式;docker类似于瓶子,而应用模块类似于饮料。瓶子太多了怎么办?会用箱子打包起来批量放置;此时箱子就类似于服务器,可以承载多个容器;

    每个瓶子装载的资源是相互隔离的,A瓶子裂了漏水,不会影响B瓶子的容量以及质量;

  3. Docker由什么组成

    1. 镜像

      1. 简单理解,就是一个模板;以代码为例。

a=1
b=1

    此时的a、b就是一个模板,可以被任意方法调用;此时的a或b或a、b就是一个镜像;

    特点:由一行或多行特定的指令形成的一个模板;也被称为镜像文件;

容器

  1. 镜像实例化的存在;以代码为例。

def Calc():
    num=a+b
    print (num)

def Calc1():
    num=a
    print (num)

    Cacl、Cacl1函数分别调用了a、b以及a这两个模板;此时的Calc、Cacl1就是一个容器;

    特点:

        由1层或多层镜像封装好的一个实例;

        实例被创建后,里面的资源不可在做更改;

        当镜像被修改后,已创建的实例不会变更;新创建的实例会继承镜像修改后的特性;

仓库

  1. 镜像存储,代码写完后一般会上传svn或gitlab托管库,当需要使用或变更时直接下载/上传即可;此时的仓库充当svn或gitlab角色;

Docker优势是什么(解决人肉运维什么痛点)

  1. 简化部署过程

    1. 只需要在第一次部署时,构建完可用的docker镜像,后续再次部署时直接拉取镜像即可;

  2. 弹性伸缩

    1. 当组件需要扩容时,直接拉取镜像启动即可(无状态服务);

  3. 可以移植性强

    1. 跨云平台迁移,基于容器制作镜像或拉取镜像部署;

  4. 资源隔离

    1. 同服务器可运行多版本jdk项目,互不影响;

  5. 环境统一性

    1. 环境不一致往往是造成问题最高的原因,通过镜像可很好掌控环境不一致问题;

  6. 版本控制

    1. 基于不通镜像设定不同仓库版本号,可随意发布任意版本;

阿萨德

结语:docker虽然并不能把部署的工作「减少为0」,但是可以「基本减少为1」。