容器映像是不变的静态文件,包含可执行代码并在 IT 基础架构上隔离运行。
容器图像是各层的集合堆积,其中包括以下内容:
在从头开始构建的新映像中,一切都从底层(基础映像)开始。基础映像是大多数基于容器的开发工作流程的起点。许多基础映像包含基本或最小的 Linux® 发行版(如 Debian、Ubuntu、Red Hat® Enterprise Linux (RHEL)、Rocky Linux 或 Alpine)。基础映像是容器文件系统文件的存储位置。创建基础映像(称为“构建”)的过程使开发人员能够构建一个标准化的环境,该环境支持自定义容器映像。
然后,将添加一系列文件系统层并将其堆叠在基础映像之上,包括以下内容:
对于包含现有映像的容器映像,现有映像的基础映像称为父映像。如果一幅映像完全是原始的,那么它就没有父映像。
容器映像存储在容器注册表中,其中映像可以上传到容器注册表(“推送”)或下载到不同的系统(“拉取”)。
容器注册表使用对象存储来展现有关容器映像的元数据。这提供了一种成功传输此类元数据的方法,但存在局限性。例如,对于涉及多个映像的数据,可用清单标签的可能数量存在限制。
依赖项容器提供了另一种存储方式。这些容器可以管理、注册和解决应用程序中的依赖项。依赖项描述了一个对象或过程必须先发生,另一个对象才能按顺序运行的情况。
考虑到在线安全的迫切需求,对获得存储库访问权限的个人进行身份验证至关重要。身份验证使用一系列特定于容器注册表的权限。权限定义谁有权使用来自容器注册表的计算机资源。
运行时的概念至关重要。容器运行时是允许容器在主机系统中运行的软件。容器运行时使用一系列步骤来执行容器的创建。这些步骤涵盖了形成容器并初始化其环境的整个过程,由包含应用程序及其依赖项的容器映像引导。
有两个容器编排提供程序,它们是使用容器和容器映像的核心:
Docker 是一种容器编排系统,可降低创建、部署和运行应用程序的复杂性。Docker 被视为一种构建轻量级、自包含容器的简单方法,它可以在任何平台上运行,而无需考虑特定的基础设施。由于可以从一台机器移动到另一台机器,Docker 容器还提供了极高的可移植性。此外,Docker 还提供了一种部署微服务的标准方法,即让用户将微服务打包为容器映像。
Docker 的映像资源是 DockerHub,可免费访问由 Docker 用户、软件供应商和开源项目共享的 100,000 多个映像和其他 Docker 文件。还有付费的 Docker 容器注册表服务供私人使用。Docker 映像使用 Docker 命令行界面 (Docker CLI),可进行登录、推送和拉动等关键操作。用户使用 Docker 引擎的 Docker Build 功能创建 Docker 映像,该功能可实现源代码的打包和捆绑。可以使用 JavaScript Object Notation (JSON) 配置文件对 Docker 进行配置。JSON 是首选格式,因为它将所有配置保存在一个地方。
Kubernetes 是开源的容器编排平台。Kubernetes 用于自动化许多软件流程,例如管理、部署和扩展。在 Kubernetes 服务中,一台或多台计算机(虚拟机或裸机服务器)连接在 Kubernetes 集群中,可以在其中运行不同大小和类型的容器工作负载。Kubernetes 应用程序编程接口 (API) 服务器为 API 对象(如 pod、服务、复制控制器等)配置数据。API 允许不同的软件应用程序相互通信和分享数据,彼此充分合作。
虽然 Docker 和 Kubernetes 提供类似的服务,但它们在各自的规模方面有所不同。Docker 是一个容器运行时,但 Kubernetes 是一个完整的平台,可容纳来自多个容器运行时的容器。Docker 只是 Kubernetes 支持的容器运行时之一。
容器映像是容器注册表使用的关键组件。
容器映像旨在容纳运行容器所需的一切。创建容器映像后,只需计算机系统适当提示,即可运行容器。这使得容器映像非常适合快速实施。
业务优先事项经常会在一夜之间发生变化。通过提前创建容器映像,组织可以预测其所有潜在的容器需求,然后选择最适合该时间和目的的容器。容器映像使组织能够根据情况进行调整。
容器映像的安全性通过容器注册表强制执行的访问控制来维护。这些包括身份验证协议,以确保未经授权的人员无法访问容器映像。图像加密现在通常用于对图像进行编码并保护它们免受漏洞的影响。
以下活动广泛使用容器映像:
基于容器的部署(由容器映像的使用提供支持)支持云原生架构,并为其提供所需的隔离和灵活性。容器和容器映像允许用户构建和优化可扩展的云原生应用程序。
许多容器注册表(及其中的容器映像)通过阐明在容器集群中定位和连接特定微服务的过程来帮助微服务用户。
虚拟机 (VM) 是利用一台计算机上的软件模拟另一台计算机功能的计算机系统。VIM 与容器映像有着独特的关系。用户通常会将 VM 作为容器的主机操作系统,而不是直接在硬件上运行容器,尤其是当容器需要在云中运行时。
容器映像提供商市场瞬息万变且充满活力,市场活动丰富,不断有大量行业参与者进入和退出。但是,以下提供商已经在这个市场上建立了持久的声誉:
Red Hat OpenShift on IBM Cloud 是一个完全托管的 OpenShift 容器平台 (OCP)。
容器解决方案能够运行和扩展容器化工作负载,并实现安全性、开源创新和快速部署。
利用 IBM 的云咨询服务发掘新功能并提升业务敏捷性。了解如何通过混合云战略和专家合作共同制定解决方案、加快数字化转型并优化性能。