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

当开发者迁移应用上云时....
随着扩张步伐的加快,dotCloud公司后来又实行了一系列大动作。诸如公司更名为Docker,意欲彻底控制相关商业业务;再到后来发布进军PaaS的Swarm项目,挑起Swarm、Mesos及K8S的鼎足之战。如今战事早已落幕,胜负已定,PaaS虽然竞争激烈,但幕后的 Docker还是那个深受喜爱的Docker,而其版本、包名称也在容器的变革中发生诸多变更。
下面针对相关容易混淆的版本做个总结说明,比如docker-io,docker-engine有啥区别,后来的moby又怎么回事。

实际上,从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: 月版本,每月发布一次 |
| Docker-EE | YY.MM | Docker商业版,只有Stable版本,每季度发布一次 |
再看看下面一张图,说明了Moby与Docker产品的关系。按照官方解释,Moby提供许多类似乐高积木的标准组件,能够让用户使用提供的框架和工具组合成定制的容器系统。基于Moby任何公司或个人都可以构建自己的容器产品,而Docker公司的CE和EE版就是如此。

二、Docker 的组成架构

上图为官方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的安装
- 更新源
# 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!

1583

被折叠的 条评论
为什么被折叠?



