本系列文章的内容和例子基于CentOS下的Docker CE(版本18.02.0-ce),其中包括:
就当前而言,要学习Docker,我们只需要对应自己的操作系统下载一个相应的Docker CE就可以了。但是,Docker生态中有很多名词,比如Docker Engine、Docker Machine、Docker Toolbox、Docker CE等等,有些名词在Docker的发展过程中已经成为历史。对于初学者来说,如果没有一个提纲挈领地总览,很容易产生混淆。因此,在学习Docker之前,我们有必要搞明白这些名词代表什么。
Docker Engine是整个Docker的核心与基础,我们通常所说的Docker其实主要指的是Docker Engine,它包含了我们平时使用的docker
命令,以及提供Docker核心功能的Docker守护进程(Docker Deamon)——包括管理Image、运行Contrainer等。
由于Docker基于Linux内核特性,因此只能运行于Linux之上,为了能在Mac/Windows系统上运行,有了Boot2Docker。Boot2Docker会先启动一个VirtualBox虚拟机,然后在该虚拟机中运行一个Linux系统,再在Linux中运行Docker。
Docker Machine是用来创建运行Docker的宿主机的,比如AWS、Azure上的虚拟机,也可以用来在本地创建VirtualBox等虚拟机。后来发现既然Docker Machine都能创建诸如VirtubalBox这样的虚拟机了,还不如直接把Boot2Docker的功能也取代了,于是Boot2Docker成为了历史。
有些时候,我们的软件系统包含了多个应用,他们需要一起运行,并且这些应用直接相互集成,通过docker
命令单独启动每一个应用显得有些繁琐,Docker Compose便是用来一次性启动一个系统中的多个应用的。事实上,Docker Compose只是对Docker Engine的一种封装而已,它在底层依然是有的是Docker Engine提供的功能。在笔者所工作过的某个项目中,我们使用到Elastic Search + LogStash组合,为此我们便是使用的Docker Compose来一次性启动这两个应用的。
在Docker早期,Docker Engine、Docker Machine和Docker Compose这三个组件是需要分别安装的,对于使用者来说并不友好。Docker Toolbox将这些相关的组件合并成一个安装包,分别提供Mac和Windows下的版本。(你可能会问为什么没有Linux下的Docker Toolbox,原因可能是因为在Linux下基本上用不到Docker Machine,并且安装Docker Engine和Docker Compose也很直观,另外Docker Toolbox中包含的Kitematic图形软件没有Linux版本。)
如前文所述,Docker Toolbox中的Docker Machine依然采用了在Mac/Windows中创建一个Linux虚拟机的形式来运行Docker。后来新版本的Mac和Windows均提供了对虚拟化的原生支持,因此为什么不直接使用而要使用像Virtualbox这样多此一举的工具呢?于是,Docker For Mac和Docker For Windows应运而生,也使得Docker Toolbox成为了历史。在实现层面,Docker For Mac使用了Hyperkit,而Docker For Windows则使用了Hyper-V。
Docker Compose主要用于在同一个Docker实例中运行多个紧密联系的Container,而对于有些大型的分布式系统,通常需要使用多台主组成一个基于Docker的集群,并且对集群中Container的管理、调度和编排有更高的要求,Docker Swarm便是用来做这个事情的。在早期的Docker中,Docker Swarm作为一个独立于Docker Engine的组件存在,后来从Docker 1.12开始,Swarm被内嵌到了Docker Engine中。
无独有偶,在Docker出现之前,Debian和Ubuntu系统中早就有个软件包名为docker了,为了避免命名冲突,Docker在这两个系统中采用了Docker.io这个名字,实则跟Docker Engine没有区别。随着后来Docker采用的Docker CE和Docker EE两种全新的命名方式,这个Docker.io同样也成为了历史。
和Docker Swarm一样,Kubernetes也是用来管理Docker集群的,只是Kubernetes是Google的产品,后来开源了。在笔者写这篇文章的时候,Docker正在提供对Kubernetes的原生支持,并且已经有了Beta版本,让我们一起期待吧。
从2017年3月份开始,Docker采用了全新的命名方式和版本演进形式。先前的Docker Engine、Docker For Mac和Docker For Windows等组成了Docker CE,即Docker 的社区版,完全开源。而Docker EE建立在原先的Docker Data Center之上,是Docker Inc公司向外提供的付费服务,如果你是财大气粗的大公司,估计你是接触不到Docker EE的了,咱还是继续玩Docker CE吧。另外,Docker的命名方式也发生了改变,从之前的1.12
这种命名法变成了基于年.月.版本号-CE/EE
,比如18.02.0-ce
表示2018年2月份发布的,小版本是0,CE版本。
Original url: Access
Created at: 2019-05-05 17:04:43
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论