容器化操作系统概览

简介: 本文讲的是容器化操作系统概览,【编者的话】随着容器技术,特别是Docker的兴起,许多新的专门运行容器的Linux发行版本也出现了。和传统的操作系统对比,使用这样的系统有一些优势所在,这篇文章我们来对比下主流的5款容器操作系统发行版本。
本文讲的是容器化操作系统概览 【编者的话】随着容器技术,特别是Docker的兴起,许多新的专门运行容器的Linux发行版本也出现了。和传统的操作系统对比,使用这样的系统有一些优势所在,这篇文章我们来对比下主流的5款容器操作系统发行版本。

docker-os-vergleich.jpg


随着容器技术,特别是Docker的兴起,许多新的专门运行容器的Linux发行版本也出现了。和传统的操作系统对比,使用这样的系统有一些优势所在,这篇文章我们来对比下主流的5款容器操作系统发行版本。

概览

使用专门为容器设计的Linux发行版有如下优势:
  • 体积很小,你只需要一个最小化的OS
  • 最小化工具的开销
  • 自动更新
  • 大多数默认是集群模式
  • 自动运行Docker服务
  • 根文件系统只读
  • 可回滚自动更新(双分区更新模式)
  • 稳定性和安全性提升

我选择5个不同的发行版本来做个对比:

每个发行版本都用cloud-init来初始化运实例,他们又支持不同的特性,所以让我们研究下他们的cloud-init。

CoreOS

CoreOS是一个新的Linux发行版本,它被重新设计来提供现代基础设施。影响CoreOS的策略和架构被用于像Google、Facebook和Twitter这样的公司来运行其服务。

默认CoreOS配置了一些工具用来运行容器而且是分布式的。容器运行环境的关键特性是自动在CoreOS的机器上配置。而且CoreOS提供了自动系统升级的功能,这意味着你不用担心旧版本的问题。

在CoreOS上你可以配合fleet来使用Docker。 Fleet是一个分布式的init系统,它可将整个集群看作是一个init系统。你可以通过扩展后的systemd unit文件来启动fleet unit. 有了fleet,你可以运维分布式的容器应用。

运行CoreOS的主要优势是etcd。etcd是一个分布式的key/value存储,它再很多项目中都有应用,像Kubernetes、Cloud Foundry。你可以用etcd来做服务发现甚至更多。而且,主流的云服务商都提供了CoreOS的支持。

Project Atomic

Project Atomic通过可靠的操作系统平台集成了一些基于容器应用和服务部署的工具和模式来提供一种端到端的服务架构,他是现代化的,稳定的,而且安全的。

对于Redhat家族成员 Fedora、RHEL和CentOS都有各自独立的Atomic版本。如果你对其中一个比较熟悉,你也可以将其作为Atomic主机。Atomic Host ReadHat用rpm-ostree替换掉yum用于管理OS包,而且具有自动更新的功能,这意味着你可以回退到之前的版本。而且你也可以通过rpm-ostree-toolbox来创建你自己的镜像。

Project Atomic的一大优势是RedHat成熟的环境。你可以在Atomic主机上使用像SELinux、Kickstart、Anaconda等工具

我已经试过他们的 快速上手教程 , 但是由于文档中用了比较旧的Atomic版本所以没能跑起来。我下载了 Fedora Atomic ,然后成功的将其跑起来。

Ubuntu Snappy

Snappy Ubuntu Core是一个Ubuntu的衍生版本 --- 一个拥有和目前Ubuntu一样的库的最小化的服务器镜像,但是应用通过一种更简单的机制来提供。这种方式更快,更可靠,而且让我们为应用和用户提供更好的安全保障 --- 这就是我们为什么叫它们『Snappy』应用。

Ubuntu Snappy支持Canonical的AppArmor内核安全系统来提供友好的安全方案。这意味着Snappy可以让你完全隔离两个应用。Snappy可以很容易的通过像Docker一样的框架扩展 --- 给你的Snappy添加了框架之后你就可以在其上运行应用了。
ubuntu-snappy.png

在Snappy里所有的系统和应用文件都保存在单独的只读的镜像里。这意味着更新Snappy会非常容易和可预知。通过增量管理的机制,Snappy也可以保证下载的东西最小化。当然Snappy也提供系统和应用更新的回滚机制。

Snappy默认不包含Docker,但是你可以很方便的安装Docker来作为一种框架运行应用 --- 对于Docker容器的情况。 安装非常简单:
snappy install docker

当我在Snappy上尝试Docker的时候,我因为  permission denied  错误没能运行起来任何容器, 这个bug已经提交到  launchpad

RancherOS

我们启动RancherOS项目,我们构建了一个最小化的Linux版本用来完美地运行Docker容器。我们想直接在内核之上运行Docker,然后将所有的用户空间内的服务作为独立的容器运行。通过这样,RancherOS就不需要额外的包管理工具的机制。

简单来说RancherOS就是由容器构成的操作系统。它将Docker作为PID 1来运行,这就意味着Docker是内核启动的第一个进程。现在另一个有意思的事情是RancherOS运行了两个Docker服务,一个给系统(系统Docker),一个给用户(用户Docker),用户Docker运行在系统Docker之中。系统Docker负责初始化所有系统服务,包括udev、DHCP和终端。所以RancherOS用Docker作为init系统来以容器的方式管理所有的系统服务,而不是systemd、sysvinit或者upstart。
rancheros.png

RancherOS使用两个Docker服务的理由是即使你不小心停止或者删掉了所有的容器,你的系统依然能正常运行。

由于你把所有的东西都通过Docker容器来运行,你会拥有最新版的Docker。你可以通过启动额外的容器来扩展RancherOS。比如,你可以运行你自己的console容器来获取你最喜欢的console。由于你需要监控的安全漏洞的更少了,补丁自然打的少了,稳定性也提高了。

由于所有的系统服务都是由容器提供,你无需像apt-get或者yum的包管理工具。即便内核和initrd不是容器,RancherOS也使用Docker的打包和发布机制来分发内核和initrd更新。

RancherOS可以作为嵌入式系统的一个备选方案。

VMware - Photon

Photon是一个最小化容器化Host, 它被设计得非常轻量而且能在VMware的平台上快速启动。Photon的设计初衷是在虚拟化环境中运行容器应用。

VMware加入到为容器创建新的发行版本的大潮中。VMware Photon是一个专门为vSphere优化的最小化Linux容器发行版。Photon支持常见的容器,包括Docker、Rocket和Pivotal Garden容器规范(基于Vmware Warden)。另外,WMware Photon自带了一个高效的生命周期管理工具,其中包括了兼容yum的包管理工具。
photon.png

Photon最大的优势来自于VMware的Lightwave. Lightwave提供了集中化的认证和授权身份管理。 它支持很多开放标准,像LDAP、Kerberos、 SAML和OAuth2.0。简单来说,Lightwave给你的环境带来了一层新的容器安全。在上边的图表中你可以看到Lightwave是怎么提供集中化的认证和授权管理的。

对比表

5.png

结论

正如计算机科学行业里的道理一样,从来也没有万能膏药。你最好的选择通常由你的项目决定 - 如果你有greenfield项目你可能用新技术, 如果你有brownfield项目你可能需要可靠的技术。这并不意味着两种技术不能同时用。从另一个方面讲,你需要知道自己需要什么,你的团队对什么熟悉。而且不要忘了这些技术仍然处于起步阶段,仍然有一些在生产环境不容发生的问题。此外,这些新项目仍然在发展阶段,变化还比较大。

时间会告诉我们这些新的操作系统会如何影响服务器/云/数据中心的世界。我认为稳定的系统和这些新系统会依赖于你的环境而共存。

总之,你可以说你有很多选择来运行你的Docker基础设施。而且不要忘了:你也可以在传统系统上运行你的容器 --- 不需要立马就切换所有的东西。

原文链接:Docker: A Comparison of Minimalistic Operating Systems(翻译:张向军 校对:宋喻)

原文发布时间为: 2015-05-12 
本文作者:xdays 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:容器化操作系统概览
目录
相关文章
|
9月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
654 30
|
7月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
242 0
|
12月前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
12月前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
376 5
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
监控 数据管理 pouch
Docker容器技术概览
关于Docker容器技术的概览,包括Docker的优势、劣势、核心技术、容器所依赖的技术,以及Docker容器的管理和编排工具。
329 7
Docker容器技术概览
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
今年是Kubernetes十周年,在这10年间。我们已经看到其成长为云原生操作系统,向下高效调度多种算力资源,屏蔽基础设施差异,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务产品已经覆盖了从公共云、边缘云、到本地数据中心的各个场景。让所有需要云能力的地方,都有统一的容器基础设施。
阿里云容器服务,智算时代云原生操作系统
|
存储 边缘计算 安全
操作系统的未来:容器化与微服务架构的融合
【7月更文挑战第21天】在数字化浪潮不断推进的今天,操作系统的角色和功能正在发生深刻变化。本文将探讨操作系统如何适应现代应用的需求,特别是容器技术和微服务架构对操作系统发展的影响。我们将分析容器化的优势、微服务架构的特点以及它们如何共同推动操作系统的创新,从而为读者揭示一个更加灵活、高效和安全的未来计算环境。
215 2
|
存储 算法 C++
C++一分钟之-容器概览:vector, list, deque
【6月更文挑战第21天】STL中的`vector`是动态数组,适合随机访问,但插入删除非末尾元素较慢;`list`是双向链表,插入删除快但随机访问效率低;`deque`结合两者优点,支持快速双端操作。选择容器要考虑操作频率、内存占用和性能需求。注意预分配容量以减少`vector`的内存重分配,使用迭代器而非索引操作`list`,并利用`deque`的两端优势。理解容器内部机制和应用场景是优化C++程序的关键。
361 5
|
Linux Docker 容器
在CentOS操作系统上使用yum安装/使用/卸载Docker容器引擎
在CentOS操作系统上安装、配置、使用和卸载Docker容器引擎的详细步骤,包括配置Docker镜像加速的方法。
1181 0