【Docker】容器的生态系统

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:是一种容器安全工具。能够对容器镜像进行扫描,发现潜在的漏洞。

相关推荐
SkyWalking中文站20 小时前
认识 Horizon UI · 15/17:用模板定制控制台
运维·监控·自动化运维
一杯奶茶¥20 小时前
Ubuntu系统镜像各个版本下载Ubuntu镜像合集资源Linux系统镜像乌班图Linux系统镜像
linux·运维·ubuntu·镜像·;inux镜像·ubuntu镜像
运维行者_1 天前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
2603_955279701 天前
Cursor + GitOps:自动化运维新姿势
运维·自动化
Waay1 天前
面试口述版:个人对 Prometheus 完整理解
运维·学习·云原生·面试·职场和发展·kubernetes·prometheus
三8441 天前
文件查找/文件压缩/解压缩
linux·运维·服务器
小猪写代码1 天前
Linux 管道(Pipeline)作业
linux·运维·服务器
桌面运维家1 天前
如何用半缓存云桌面将服务器硬盘容量扩展至本地终端?
运维·服务器·缓存
激情的学姐1 天前
【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器
运维·nginx
ai_coder_ai1 天前
编写自动化脚本,在自己后端服务中使用Open Api进行设备相关操作
java·运维·自动化