什么是容器?
容器是一种轻量级独立软件包,可封装完整的运行时环境,包括应用及其依赖项(库、二进制文件和任何其他配置文件),从而提高应用的移动性、可扩展性、安全性和敏捷性。
容器深受开发人员和运维人员的欢迎,因为它们提供了一种简单的方法来部署和管理应用,而无需考虑目标环境。容器改进了开发和运维团队之间的交接,从而促进了 DevOps 和 DevSecOps 实践。
容器可有效使用资源,从而实现高密度和高资源利用率。尽管容器几乎可以与任何应用配合使用,但它们通常与微服务相关联,多个容器会在微服务中运行单独的应用组件或服务。组成应用的容器通常使用容器编排平台(如 Kubernetes)进行协调和管理。
容器是通过将一个或多个存储库中的多个镜像组成的应用,以及任何库或其他应用依赖关系打包来创建的,从而消除了移动性和兼容性问题。

构建 Kubernetes 容器的新方法

容器和虚拟机之间的协同效应
容器与虚拟机
容器标准
容器自动化
手动工作会减慢开发团队的开发速度。容器自动化使开发人员能够专注于代码而不是打包。容器镜像是分层构建的。使用自动化的容器构建方法,如果某一层发生变化,只需更新该层。例如,如果只需要更新系统库,则只需重建包含库的层。由于其他层保持不变,因此减轻了测试和验证负担,更新后的容器能够更快、更频繁地投入生产。
Docker
自 2013 年推出以来,Docker 几乎就是容器的同义词,目前仍用于构建容器镜像。Docker 环境包括容器运行时,还能进行容器构建和镜像管理。由于 Docker 版本是符合 OCI 标准的容器镜像,因此 Docker 镜像可以在任何符合 OCI 标准的容器运行时上运行。
Kubernetes
容器应用场景
面向开发人员
- 提高应用跨不同平台和配置的移动性,这样在语言编译器或解释器的某个版本上开发的代码就可以在后续版本上完美运行,无需修订。
- 使开发人员不必在同一基础架构上进行开发、测试和部署,在自己的笔记本电脑上编写代码的开发人员可以确信,应用将在任何其他基础架构(无论是本地部署服务器还是云端虚拟机)上正常运行。
- 促进 CI/CD 等敏捷开发流程,加快代码验收和部署。
面向 IT 运维
- 以轻型方式与其他应用隔离,提高应用安全性。
- 跨不同的操作系统版本、网络拓扑或存储配置以及云平台顺畅迁移容器化应用。
- 在单个操作系统实例上运行多个应用容器,提高 IT 效率。由于容器的大小通常为数十 MB,而虚拟机的大小通常为 10 GB 或更大,因此可以在单个服务器实例上运行大量容器。
可在几毫秒内启动额外的容器实例(而启动虚拟机需要几分钟),可提供极高的按需可扩展性。
相关解决方案和产品
采用 Kubernetes 进行应用现代化改造
在数据中心或云环境中提供开发人员就绪型 Kubernetes
由源代码构建 Kubernetes 容器
VMware Tanzu Build Service 可自动创建、管理和监管容器,适用于大型企业。
多云 Kubernetes 管理
VMware Tanzu Mission Control 是多云 Kubernetes 管理平台,可提供基于 Kubernetes 的一致平台,以实现云虚拟化,该平台支持在任何云上大规模管理、运维和分发应用。