【Docker】容器的生态系统

news2024/11/23 8:45:56

Docker提供了一整套技术支持,包括核心技术、平台技术、支持技术。

核心技术

容器核心技术是指能让Container(容器)在host(集群、主机)上运行起来的那些技术。

1)容器规范:OCI(runtime spec+image format spec)

specification:标准是基础,统一容器的标准,好似usb接口取代了许多电脑接口,来源于标准化,主要使runtime和image进行标准化。

(2)容器runtime:是容器真正运行的地方。需要跟操作系统的kernel紧密协作,为容器提供运行环境。容器只有在runtime才能运行
主流的容器runtime:lxc、runc、rkt

lxd:原docker默认的runtime,来源于Linux。
runc:docker自己开发的runtime(rkt是CoreOS公司开发的容器runtime,docker默认容器)
(3)容器管理工具:
对内与runtime交互,对外为用户提供interface(界面)。
常用的容器管理工具:
lxd(是lxc对应的管理工具);
runc的管理工具是docker engine。docker engine包括后台deamon和cli两部分。
rkt的管理工具是rkt cli。
(4)容器定义工具:
容器定义工具:允许用户定义容器的内容和属性。这样容器就能够被保存、共享和重建。
常用的容器定义工具:
docker image:是docker容器的模板,runtime一句docker image创建容器;
dockerfile:是包含若干命令的文本文件,可以通过这些命令创建出docker image;
ACI(App Container Image):与docker image类似,不过它是由CoreOS开发的rkt容器的image格式。
(5)容器仓库:容器是通过image创建的,需要有一个仓库来统一存放image,这个仓库就叫做Registry。
Docker Registry:企业可以用Docker Registry构建私有的Registry;
Docker Hub:是docker为公众提供的托管registry,有很多现成的image;
Quay.io:也是一个公共托管registry,由红帽公司提供。
(6)容器OS:是专门运行容器的操作系统。
常用:coreos、atomic、ubuntu core。

平台技术

容器平台技术支持容器集群在分布式环境中运行。

(1)容器编排引擎
要干的工作:用高效的方法来管理容器集群。
常用容器编排引擎:
docker swarm:是Docker开发的容器编排引擎;
kubernetes:是Google领导开发的开源容器编排引擎,同时支持Docker和CoreOS容器;
mesos:是一个通用的集群资源调度平台,mesos与marathon一起提供容器编排引擎功能。
(2)容器管理平台
是架构在容器编排引擎之上的一个更通用的平台。
通常容器管理平台支持多种编排引擎,抽象了编排引擎的底层实现细节。
典型代表:Rancher、ContainerShip。
(3)基于容器的PaaS
PaaS即(Platform-as-a-Service:平台即服务。
基于容器的PaaS为微服务应用开发人员和公司提供了开发、部署和管理应用的平台,使用户不必关心底层基础设施而专注于应用的开发。
开源容器PaaS的代表:Deis、Flynn、Dokku。

支持技术

容器支持技术是用来支持容器设备的技术,有了这些技术的支持,容器才能完整地运行并运行到企业中。

(1)容器网络
docker network:是Docker原生的网络解决方案;
flannel:第三方开源解决方案;
weave:第三方开源解决方案;
calico:第三方开源解决方案。
(2)服务发现
动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。
容器也会根据host的资源使用情况在不同host中迁移。
服务发现的典型解决方案:etcd、consul、zookeeper。
(3)监控
docker ps/top/stats:是Docker原生的命令行监控工具;
docker stats API:可以通过HTTP请求获取容器的状态信息;
sysdig:开源的容器监控方案;
cAdvisor/Heapster:开源的容器监控方案;
Weave Scope:开源的容器监控方案。
(4)数据管理
容器经常在不同的host之间迁移。
如何保证持久化数据也能动态迁移,是Rex-Ray这类数据管理工具提供的能力。
(5)日志管理
日志工具有两类:
docker logs:是Docker原生的日志工具。
logspout:对日志提供了路由功能,可以收集不同容器的日志并转发给其他工具进行后处理。
(6)安全性
OpenSCAP:是一种容器安全工具。能够对容器镜像进行扫描,发现潜在的漏洞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511168.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Twitter广告投放技巧

明确目标受众: 确定你的目标受众,包括他们的兴趣、地理位置、年龄等。Twitter提供了广告定位选项,确保你的广告被展示给最相关的用户。 使用吸引人的图像和视频: 在Twitter上,图像和视频是引起关注的关键。确保你的广…

数据结构与算法第五套大题

1.图的最小生成树,各边权值之和: E{(1,5),(5,2),(5,3),(3,4)},W10 2.平均查找长度: 方法论: 直接将其变成一颗二叉树,然后计算每个节点的数学期望*比较次数之和/7 比如: 15为1/7,只需要比较一次…

数据库系统概念(第一周)

⚽前言 🏐四个基本概念 一、数据 定义 种类 特点 二、数据库 三、数据库管理系统(DBMS) 四、 数据库系统(DBS) 🏀数据库系统和文件系统对比 文件系统的弊端 🥎数据视图 数据抽象 …

【阿里云系列】-基于云效构建部署NodeJS项目到ACK

准备工作 01、编写Dockerfile文件可以根据不同的环境,新建不同的Dockerfile文件,比如Dockerfile-PROD # Deliver the dist folder with NginxFROM nginx:stable-alpine ENV LANGC.UTF-8 ENV TZAsia/ShanghaiCOPY dist/ /usr/share/nginx/html COPY ngi…

5.BOM-操作浏览器(BOM、插件、本地存储)

BOM // BOM操作:操作浏览器(通过js的方式实现浏览器中的某些功能)// a)通过js的方式实现页面刷新效果// b)通过js的方式,实现浏览器的上一页、下一页// c)通过js的方式,实现页面的跳转Window对象 window是浏览器对象,又称为顶级对…

Google如何快速抓接口导入到postman调试

Google如何快速抓接口导入到postman调试 1、F12选择对应接口,右键后复制接口连接信息 2、打开postman,点击import 3、在raw text都粘贴 4、点击continue后,导入就可以了

音视频开发_视频基础知识

RGB彩色原理 RGB 是表示红色 (Red)、绿色 (Green) 和蓝色 (Blue) 三种颜色的色彩模式,这是一种加色法。在 RGB 色彩模式中,通过不同比例的红、绿、蓝三原色的混合可以得到各种不同颜色。这是因为人眼对红、绿、蓝三种颜色特别敏感,通过它们的…

前端页面访问后台hiveserver2,阶段性报错

1、运行环境 Windows11下安装VMware,VMware下安装CentOS7 Linux系统,三台虚拟机集群部署hadoop,安装hive; 在Linux下安装Eclipse,创建maven工程,使用hive-jdbc-2.3.2访问hiveserver2 2、在windows11下&…

成都爱尔林江院长解析巩膜镜是什么?它适合哪些人群

巩膜镜,全称为硬性透氧性巩膜接触镜,它有着特殊设计,大直径镜片像桥梁一样呈拱形覆盖角膜及角巩膜缘,从角膜上方横跨而过完全无接触、无任何机械性摩擦,最终贴合于巩膜。 巩膜镜的作用原理 光学成像: 配戴…

【嵌入式】嵌入式系统稳定性建设:最后的防线

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟。提供嵌入式方向的学习指导、简历面…

OxyPlot图表曲线图学习笔记(winform)

一、学习OxyPlot 开源地址:https://github.com/oxyplot/oxyplot 最新版:v2.1.2 新建winform,nuget中添加依赖包 二、写代码 2.1 BarSeries 2.2 ScatterSeries 2.3 LineSeries (带指向箭头) int pointCount 50; double[] xs …

C# Channel的入门与应用

C# Channel的入门与应用 1. 入门 Channel 是微软在 .NET Core 3.0 以后推出的新的集合类型,该类型位于 System.Threading.Channels 命名空间下,具有异步 API 、高性能、线程安全等等的特点。目前,Channel 最主要的应用场景是生产者-消费者模…

​FastIce-Tech 企业官网开源模版:专为中小企业设计的轻量级网址

标题:FastIce-Tech 企业官网开源模版:专为中小企业设计的轻量级网址 中小企业在建立企业官网时常常面临着时间、资源和技术的限制。为了解决这些问题,FastIce-Tech 企业官网开源模版应运而生。它是一个基于 Vue.js、ElementUI 和 Vue-Router …

帮管客CRM(jiliyu)接口SQL注入漏洞

文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复建议 前言 帮管客CRM客户管理系统专注于为企业提供crm客户关系管理、crm管理系统、crm软件产品及企业销售管理流程解决方案服务,助力企业业绩增长。 声明 请勿利用文章内的相关技术从事非法测试,由…

7-2 然后是几点

题目链接&#xff1a;7-2 然后是几点 一. 题目 1. 题目 2. 输入输出格式 3. 输入输出样例 4. 限制 二、代码 1. 代码实现 #include <stdio.h>int time_calc(int start_time, int used_time){int start_hour start_time / 100;int start_minute start_time % 100;…

利用ffmpeg对两个音频文件进行混音处理

前言 最近&#xff0c;拿到了一个语音识别程序&#xff0c;想测试一下它识别的准确性。原本程序有一段自己的测试音频&#xff0c;准确性还可以&#xff0c;但是&#xff0c;自己想增加一下测试素材的复杂性。想到了在原本的测试音频中引入干扰数据&#xff08;噪点&#xff…

灵魂指针,教给(三)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 目录 一、 字符指针变量 二、数组指针变量 2.1 数组指针变量是什么 2.2 数组指针变量如何初始化 三、二维数组传参本质 四、函数…

C语言 —— 图形打印

题目1&#xff1a; 思路&#xff1a; 如果我们要打印一个实心正方形&#xff0c;其实就是一个二维数组&#xff0c;i控制行&#xff0c;j控制列&#xff0c;行列不需要控制&#xff0c;arr[i][j]直接打印星号即可。 对于空心正方形&#xff0c;我们只需要控制行和列的条件&…

【C语言程序设计】C语言求圆周率π(三种方法)

题目一&#xff1a; 利用公式①计求π的近似值&#xff0c;要求累加到最后一项小于10^(-6)为止。 程序代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){float s1;float pi0;float i1.0;float n1.0;while(fabs(i)&…

PaddleOCR表格识别运行实例

目录 PaddleOCR 开源项目地址 一、数据集 1. 训练数据下载 2.数据集介绍 &#xff08;1&#xff09;PubTabNet数据集 &#xff08;2&#xff09; 好未来表格识别竞赛数据集 &#xff08;3&#xff09;WTW中文场景表格数据集 二、训练步骤 1.数据放置 2.环境配置 &…