叙:本来想着入门篇直接将Docker的介绍和在Ubuntu上部署的一块给写完,但是发现这样的话太仓促,我本人就是一个慢热型人,所以考虑到对于像我这样的同学需要循环渐进,因此Docker的入门学习我拆分成了三篇,这是第一篇,主讲Docker的基本信息,不涉及到实际操作;



Docker入门(一)——了解Docker

  • 1、Docker是什么?
  • 2、Docker优缺点
  • 3、Docker 架构(组成)



1、Docker是什么?

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,它主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程,而隔离正是Docker技术的核心所在,通俗点讲就是:Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。


2、Docker优缺点
  • 部署方便
    开发环境就只是一个或者几个容器镜像的地址,最多再需要一个控制部署流程的执行脚本即可;

  • 部署安全
    通过容器技术将开发环境和测试环境以及生产环境保持版本和依赖上的统一,保证代码在一个高度统一的环境上执行。

  • 隔离性好
    Docker可以创建多个容器,每一个容器就是一个隔离的环境,部署中对容器内部提供服务的要求,容器可以自依赖的全部提供。这种高内聚的表现可以实现快速的分离有问题的服务,在一些复杂系统中能实现快速排错和及时处理。

  • 快速回滚
    Docker的每个历史容器或者镜像都会有保存,而替换一个容器或者某个历史镜像是非常快速和简单的。

  • 成本低
    容器出现之前,构筑一个应用就需要一台新的服务器或者一台虚机。服务器的购置成本和运维成本都很高,而虚机需要占用很多不必要的资源。相比之下,容器技术就小巧轻便的多,只需要给一个容器内部构建应用需要的依赖就可以了,这也是容器技术发展迅速的最主要原因。


    优点有很多,在此不一一叙述,有兴趣的朋友可以看一下这篇文章:https://www.linuxprobe.com/docker-pros-cons.html


3、Docker 架构(组成)

Docker 包括三个基本概念:

镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker入门(一)——了解Docker_Docker
以上部分资料来源于:菜鸟-Docker教程


pass:以上就是Docker的简单介绍,下一章将会详细的讲述在Ubuntu上部署Docker的过程;