docker生态系统

wangyp wangyp     2022-09-09     115

关键词:

 

 

对于像容器这类平台级别的技术,通常涉及的知识范围会很广,相关的软件,解决方案也会很多,初学者往往容易迷失。

那怎么办呢?

我们可以从生活经验中寻找答案。
当我们去陌生城市旅游想了解一下这个城市一般我们会怎么做?

我想大部分人应该会打开手机看一下这个城市的地图:

城市大概的位置和地理形状是什么?
都由哪几个区或县组成?
主要的交通干道是哪几条?
同样的道理,学习容器技术我们可以先从天上鸟瞰一下:

容器生态系统包含哪些不同层次的技术?
不同技术之间是什么关系?
哪些是核心技术哪些是辅助技术?
首先得对容器技术有个整体认识,之后我们的学习才能够有的放矢,才能够分清轻重缓急,做到心中有数,这样就不容易迷失了。

接下来我会根据自己的经验帮大家规划一条学习路线,一起探索容器生态系统。

学习新技术得到及时反馈是非常重要的,所以我们马上会搭建实验环境,并运行第一个容器,感受什么是容器。

千里之行始于足下,让我们从了解生态系统开始吧。

鸟瞰容器生态系统

一谈到容器,大家都会想到 Docker。

Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,大家也需要知道围绕 Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术能够真正健康发展的决定因素。

大致来看,容器生态系统包含核心技术、平台技术和支持技术。

下面分别介绍。

容器核心技术

容器核心技术是指能够让 container 在 host 上运行起来的那些技术。
这些技术包括容器规范、容器 runtime、容器管理工具、容器定义工具、Registry 以及 容器 OS,下面分别介绍。

容器规范

容器不光是 Docker,还有其他容器,比如 CoreOS 的 rkt。为了保证容器生态的健康发展,保证不同容器之间能够兼容,包含 Docker、CoreOS、Google在内的若干公司共同成立了一个叫 Open Container Initiative(OCI) 的组织,其目是制定开放的容器规范。
目前 OCI 发布了两个规范:runtime spec 和 image format spec。
有了这两个规范,不同组织和厂商开发的容器能够在不同的 runtime 上运行。这样就保证了容器的可移植性和互操作性。

容器 runtime

runtime 是容器真正运行的地方。runtime 需要跟操作系统 kernel 紧密协作,为容器提供运行环境。

如果大家用过 Java,可以这样来理解 runtime 与容器的关系:

Java 程序就好比是容器,JVM 则好比是 runtime。JVM 为 Java 程序提供运行环境。同样的道理,容器只有在 runtime 中才能运行。
lxc、runc 和 rkt 是目前主流的三种容器 runtime。

lxc 是 Linux 上老牌的容器 runtime。Docker 最初也是用 lxc 作为 runtime。

runc 是 Docker 自己开发的容器 runtime,符合 oci 规范,也是现在 Docker 的默认 runtime。

rkt 是 CoreOS 开发的容器 runtime,符合 oci 规范,因而能够运行 Docker 的容器。

容器管理工具

光有 runtime 还不够,用户得有工具来管理容器啊。容器管理工具对内与 runtime 交互,对外为用户提供 interface,比如 CLI。这就好比除了 JVM,还得提供 java 命令让用户能够启停应用不是。
lxd 是 lxc 对应的管理工具。

runc 的管理工具是 docker engine。docker engine 包含后台 deamon 和 cli 两个部分。我们通常提到 Docker,一般就是指的 docker engine。

rkt 的管理工具是 rkt cli。

容器定义工具

容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存,共享和重建。
docker image 是 docker 容器的模板,runtime 依据 docker image 创建容器。

dockerfile 是包含若干命令的文本文件,可以通过这些命令创建出 docker image。

ACI (App Container Image) 与 docker image 类似,只不过它是由 CoreOS 开发的 rkt 容器的 image 格式。

Registry

容器是通过 image 创建的,需要有一个仓库来统一存放 image,这个仓库就叫做 Registry。
企业可以用 Docker Registry 构建私有的 Registry。

Docker Hub(https://hub.docker.com) 是 Docker 为公众提供的托管 Registry,上面有很多现成的 image,为 Docker 用户提供了极大的便利。

Quay.io(https://quay.io/)是另一个公共托管 Registry,提供与 Docker Hub 类似的服务。

容器 OS

由于有容器 runtime,几乎所有的 Linux、MAC OS 和 Windows 都可以运行容器。但这不并没有妨碍容器 OS 的问世。
容器 OS 是专门运行容器的操作系统。与常规 OS 相比,容器 OS 通常体积更小,启动更快。因为是为容器定制的 OS,通常它们运行容器的效率会更高。

目前已经存在不少容器 OS,CoreOS、atomic 和 ubuntu core 是其中的杰出代表。

下一节继续介绍容器平台技术和容器支持技术。

 

 

docker生态系统

  对于像容器这类平台级别的技术,通常涉及的知识范围会很广,相关的软件,解决方案也会很多,初学者往往容易迷失。那怎么办呢?我们可以从生活经验中寻找答案。当我们去陌生城市旅游想了解一下这个城市一般我... 查看详情

docker

...建,到处执行;容器都非常轻量;容器的创建速度更快。DockerDocker并不等于容器(Container)Docker是以容器技术为核心的一套应用的构建,分发,执行的体系和生态。Docker生态的组成部分DockerEngineDockerHubDockerMachineD 查看详情

docker生态会重蹈hadoop的覆辙吗?

Docker生态会重蹈Hadoop的覆辙吗?http://mp.weixin.qq.com/s?__biz=MzA5NDg3ODMxNw==&mid=2649535024&idx=1&sn=5e15a1afd3adfd3dca538c688e28d1e2 查看详情

云原生第二篇--容器管理工具docker生态架构及部署(代码片段)

容器管理工具Docker生态架构及部署一、Docker生态架构1.1DockerContainersAreEverywhere1.2生态架构1.2.1DockerHost1.2.2Dockerdaemon1.2.3Registry1.2.4Dockerclient1.2.5Image1.2.6Container1.2.7DockerDashboard1.3Docker版本二、Docker部署2.1使用YUM源部署2.1.1获取阿里云开... 查看详情

docker入门

Docker入门Docker入门Docker定义DockerVSVMDocker生态系统Docker应用场景Docker技术架构Docker工作方式附录Docker定义Dockerisaplatformfordevelopersandsysadminstodevelop,ship,andrunapplications.1.不是容器,是管理容器的引擎2.不是虚拟化技术,是基于... 查看详情

docker生态不会重蹈hadoop的覆辙

2016-08-24 晏东 本文作者650)this.width=650;"src="https://mmbiz.qpic.cn/mmbiz_png/79ibVibyyiaIBcBLricFKPWDbh7ZQ36TwLz0FE5hQtgN0AvwbJdVfG4IibiaEaUB4yrUiaQ4xMErodpIFwNQQPqEEvGLg/640?wx_fmt=png&tp 查看详情

容器生态系统(续)

...器被有机的组合成微服务应用,实现业务需求。   dockerswarm是Docker开发的容器编排引擎。kubernetes是Google领导开发的开源容器编排引擎,同时支持Docker和CoreOS容器。mesos是一个通用的集群资源调度平台,mesos与marathon一起提供... 查看详情

docker初识

Docker=Container(容器)?X容器与虚拟机,系统级的虚拟化和硬件虚拟化容器与虚拟机相比的三个主要特点:1不可变的特性(通过定义dockerfile一次构建,到处执行),2轻量,3创建速度更快Docker是什么?Docker是以容器技术为核心的一... 查看详情

有容云干货-容器系列补脑专用,容器生态圈脑图大放送

...部署的特性促生了微服务和云原生应用的普及和发展。 Docker容器毫无疑问,Docker是目前最具人气且应用最为广泛的容器技术。为什么呢?作者总结了以下主要的两个原因。 1、和早期容器技术不同,Docker不只是针对... 查看详情

PM2 启动生态系统.config.js 在节点 js 项目的 dockerfile 中不起作用

】PM2启动生态系统.config.js在节点js项目的dockerfile中不起作用【英文标题】:PM2startecosystem.config.jsnotworkingindockerfileinnodejsproject【发布时间】:2022-01-2219:44:19【问题描述】:我有一个节点js项目,我正在使用Docker将构建更新到服务... 查看详情

云原生生态圈:docker核心技术全面总结(代码片段)

...f01;大家一起学习,一起进步。本文将分别讲解什么是Docker,如何安装Docker,Docker的镜像操作,Docker容器操作,以实战为线索,逐步深入Docker相关知识,打造完整的Docker学习体系,可查阅,可复... 查看详情

云原生生态圈:服务快速上云--docker部署springboot案例详解(代码片段)

...f01;大家一起学习,一起进步。本文将分别讲解如何用Docker部署MySQL、tom 查看详情

不得不知的容器生态圈发展趋势

Docker于2013年推出以来,给软件开发带来了极具传染性的振奋和创新,并获得了来自各个行业、各个领域的巨大的支持——从大企业到初创公司,从研发到各类IT人员,还有开源社区、ISV、最大的公共云供应商、软件堆栈上的每个... 查看详情

和79植物生态系统比动物生态系统强吗?(温微观察13-9)

植物生态系统与动物生态系统相比,最有意思的地方是植物生态系统不是依靠血腥来维持的,而是依靠对环境资源的慢性争夺来维持,大树并不会吃掉小草或者灌木,但是它用时间把它们生存所需要的阳光遮住... 查看详情

docker搭建elk(代码片段)

...的数据变得有形有样,是一个可扩展的用户界面官网docker指导地址Elasticsearch+Kibanahttps://www.elastic. 查看详情

textvue生态系统(代码片段)

查看详情

每天5分钟玩转容器技术整理目录

...术(5)容器What,Why,How-每天5分钟玩转容器技术(6) Docker架构详解-每天5分钟玩转容器技术(7)Docker组件如何协作?- 查看详情

无法理解整个 OSGi web 生态系统

】无法理解整个OSGiweb生态系统【英文标题】:TroubleunderstandingthewholeOSGiwebecosystem【发布时间】:2011-02-0319:12:21【问题描述】:我对整个Java和OSGi世界还很陌生,我无法理解OSGiWeb应用程序的生态系统。更准确地说,我目前正试图了... 查看详情