初识docker -- 从版本历史、架构到安装

初识docker -- 从版本历史、架构到安装_第1张图片

目录

一、Docker的版本变迁

二、Docker 的组成架构

三、Docker的安装


一、Docker的版本变迁

自从dotCloud公司开源其Docker项目后,凭借其便捷的Docker镜像技术解决了当时困扰众多PaaS项目的难题:如何为应用打包,让用户将本地的应用顺利迁移到PaaS平台,而不用顾忌应用的开发语言、配置、依赖包等诸多因素,也因此开启了全新的Docker容器时代。

                                                        当开发者迁移应用上云时.... 

随着扩张步伐的加快,dotCloud公司后来又实行了一系列大动作。诸如公司更名为Docker,意欲彻底控制相关商业业务;再到后来发布进军PaaS的Swarm项目,挑起Swarm、Mesos及K8S的鼎足之战。如今战事早已落幕,胜负已定,PaaS虽然竞争激烈,但幕后的 Docker还是那个深受喜爱的Docker,而其版本、包名称也在容器的变革中发生诸多变更。

下面针对相关容易混淆的版本做个总结说明,比如docker-io,docker-engine有啥区别,后来的moby又怎么回事。

初识docker -- 从版本历史、架构到安装_第2张图片

实际上,从2013年3月开始推出0.1.0版本,到17年2月1.13的版本都采用x.x的形式,后来为了专注于Docker的商业业务,Docker公司将Docker项目改名为Moby,交由社区自行维护,将Docker本身拆分为Docker-CE免费版和Docker-EE商业版,由自身维护,此举几乎是全部将原先的Docker用户转移到Docker公司产品下。下面表格详细列举说明了各个版本情况。

版本名 版本号 说明

Docker(docker.io,docker-engine)

1.x.x 以前的Docker开源版本,docker.io是由Ubuntu发布的deb包,docker-engine是Docker公司官方发布的deb包

 

Moby

 

YY.MM 更名后由社区维护的开源项目,不过不知为什么,github上才17版本
Docker-CE YY.MM,例如19.06,代表19年6月

由Docker公司维护的免费版本,CE分为Edge和Stable版本,

Edge:   月版本,每月发布一次
Stable: 季度版本,每季度最后一月发布一次

Docker-EE YY.MM Docker商业版,只有Stable版本,每季度发布一次

再看看下面一张图,说明了Moby与Docker产品的关系。按照官方解释,Moby提供许多类似乐高积木的标准组件,能够让用户使用提供的框架和工具组合成定制的容器系统。基于Moby任何公司或个人都可以构建自己的容器产品,而Docker公司的CE和EE版就是如此。

初识docker -- 从版本历史、架构到安装_第3张图片

二、Docker 的组成架构

初识docker -- 从版本历史、架构到安装_第4张图片

上图为官方Docker Engine的组成架构,作为Docker的核心,采用Client-Server的软件模式,包括三个组成部分:

Server:  Docker的守护进程,对应指令“dockerd”。用于创建管理Docker对象包括容器、镜像、网络、Volume等

REST API:提供用于与Docker守护进程进行通信并下达指令的接口

CLI Client:提供命令行接口,对应指令“docker”。通过REST API与守护进程进行通信并下达指令

针对Docker的守护进程,在1.10版本及之前都以独立的程序运行的,随后由于组件模块化的进行,拆分成docker-containerd、
docker-containerd-shim、docker-runc等多个模块,在后面的文章中会逐步讲到相关的技术点。至此,再加上底层linux内核技术的支撑(namespaces、cgroups及UnionFS)我们就能得出下面一张总体的架构图。

初识docker -- 从版本历史、架构到安装_第5张图片

 

三、Docker的安装

  • 更新源
# apt-get update
  • 安装相关包支持apt基于https的访问
# apt-get install  apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  •  添加docker官方gpg
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 添加docker的仓库地址到源中 
# add-apt-repository  "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs)   stable"
  • 安装指定版本docker-ce
# apt-get update
# apt-get install docker-ce=18.06.3~ce~3-0~ubuntu
  • 查看当前版本  
 # docker version
Client:
 Version:           18.06.3-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        d7080c1
 Built:             Wed Feb 20 02:27:18 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.3-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       d7080c1
  Built:            Wed Feb 20 02:26:20 2019
  OS/Arch:          linux/amd64
  Experimental:     false
  •  运行第一个实例  
# docker run hello-world

Hello from Docker!

 

 

 

  

 

  

你可能感兴趣的:(云计算)