首页 文章 精选 留言 我的

精选列表

搜索[HTTP/2],共10000篇文章
优秀的个人博客,低调大师

容器生态系统 - 每天5分钟玩转容器技术(2)

对于像容器这类平台级别的技术,通常涉及的知识范围会很广,相关的软件,解决方案也会很多,初学者往往容易迷失。 那怎么办呢? 我们可以从生活经验中寻找答案。当我们去陌生城市旅游想了解一下这个城市一般我们会怎么做? 我想大部分人应该会打开手机看一下这个城市的地图: 城市大概的位置和地理形状是什么? 都由哪几个区或县组成? 主要的交通干道是哪几条? 同样的道理,学习容器技术我们可以先从天上鸟瞰一下: 容器生态系统包含哪些不同层次的技术? 不同技术之间是什么关系? 哪些是核心技术哪些是辅助技术? 首先得对容器技术有个整体认识,之后我们的学习才能够有的放矢,才能够分清轻重缓急,做到心中有数,这样就不容易迷失了。 接下来我会根据自己的经验帮大家规划一条学习路线,一起探索容器生态系统。 学习新技术得到及时反馈是非常重要的,所以我们马上会搭建实验环境,并运行第一个容器,感受什么是容器。 千里之行始于足下,让我们从了解生态系统开始吧。 鸟瞰容器生态系统 一谈到容器,大家都会想到 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——容器与容器云(第2版)》的读后感

首先,这本书讲述了Docker 底层实现的原理及细节,语言通俗易懂,对Kubernetes 也进行呢深入的讲解,最近用k8s, 从这本书里学到了很多知识,对k8s 的核心组件进行了深入分析,对实现原理进行了透彻讲解,内容丰富,堪称良心之作,本人也在做云计算,也拜读过第一版本,作为国内最早的Docker技术参考书,收获很大,对于最新技术的发展,在新版本中,有着很好的把握,体现着Docker技术的发展潮流,在保持了第一版架构的同时,对各个章节的内容又进行了大量的扩充,紧紧跟随着Docker以及k8s社区的发展步伐。相信不论是对于初涉容器领域的新人,还是希望深入理解Docker容器实现原理的开发人员,这都是一本不可多得的好书,这本书注重实践和理论的结合,既有Docker和k8s的基础操作和使用,也有其源码分析,代码版本选择也很好,现在最新的Docker加入了swarm,稳定性也是问题,以后大趋势可能就是OCI标准容器直接接入k8s了,然后镜像,存储,volume和网络都通过分模块和插件的方式进行接入,极大程度进行解耦,希望下一版可以着重对这方便进行论述和分析。非常适合大家学习,推荐!!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

用户登录
用户注册