【译闻】容器的管理,也是一门艺术

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 容器和虚拟机之间有几分相近,也有很大区别,我们应该学会在正确的时间,正确地使用容器与虚拟机,以消除它们之间的混淆。本文就容器和虚拟机的使用和管理提供了一些建议。

前言

容器和虚拟机之间有几分相近,也有很大区别,我们应该学会在正确的时间,正确地使用容器与虚拟机,以消除它们之间的混淆。本文就容器和虚拟机的使用和管理提供了一些建议。

 

众所周知,如果你只需要处理一种类型的容器,那么在云环境中管理容器就很简单。可一旦面对容器集群的管理,面对这种多样化技术,那必将伴随着一系列全新的管理挑战。成功管理的关键在于,你要在坠入陷阱之前敏锐地发现它。

 

最简单的容器使用场景是将现有的应用程序打包进Docker容器并分发:将所有应用程序的附属项都封装到Docker映像中,并添加单个文本文件(Dockerfile)来解释如何创建映像。

监控这些容器与监控服务器是一样的,该应用程序使用的进程和资源都可以在服务器上查看,没有必要确认服务器所有必需的组件,因为它们都封装在Docker映像中,并由Docker文件管理,包括正确的Java版本和Python库。

 

容器如何更改服务器的管理任务


将应用程序放在Docker容器中意味着你不需要在服务器上更新和修复代码,只需要更新Dockerfile并构建一个新的Docker映像即可。

2312f230c2751511585c0c75becbb7ef10810de9


通过从标准的虚拟化模型中除去一层软件,容器的性能会提高10%到20%。

 

容器的启动和停止是秒级的,这比虚拟机快得多。支持微服务的应用程序将使用更多的容器,其中大多数都更新频繁。该应用的每一个微服务都有自己的Docker映像,即微服务可以通过创建或停止容器来扩大或缩小应用的规模。

 

如何克服容器可移植性的障碍


由于你的应用程序依赖于容器之外的数据,所以你需要对存储进行安排。最常见的形式是容器集群上的本地存储,将存储插件添加到每个容器映像中,并对公有云存储AWS和Azure使用不同的存储服务。

 

Google 的Kubernetes集群管理工具在容器编排管理方面提供了比Azure或AWS更灵活、更稳定的性能。但Google、Azure和AWS提供的服务都有一个共同的缺陷,便是它们将数据一定程度上限制在了平台上,这使得应用程序的可移植性变得复杂。

 

云容器存储的另一个缺点是不一致的安全策略。跨平台应用和执行安全访问规则从来都不是件容易的工作。容器安全性的基础是用户/组目录和用于实施访问控制的身份管理系统。

 

选择容器还是虚拟机需要考虑的因素有哪些


容器和虚拟机之间的差异是:虚拟化发生在不同的位置。虚拟机使用监控管理程序将服务器划分到操作系统级别以下,因此虚拟机只共享硬件。容器的虚拟化发生在操作系统级别,因此容器共享操作系统和一些中间件。在虚拟机上运行应用程序更像是在裸机上运行它们,相反,在容器上运行的应用程序必须符合单一的软件平台。

29bdc7b92fe9aa58f5462f452fb55aa3c56c0547

虚拟机提供了裸机的灵活性,而容器只需要更少的资源来优化利用率

 

另一方面,由于在部署和重新部署应用程序和组件时,平台软件的复用率要低得多,所以容器的开销较虚拟机更少。每个服务器不仅可以运行更多的应用程序,而且容器可以让你更快地部署和重新部署虚拟机。

 

还有一个缺点值得重视:联合托管。当在容器中部署应用程序来共同托管所有应用程序的组件以加速网络连接,这被认为是最佳的实践方案。然而,联合托管使得故障的处理和资源的转移更加困难,这是混合云的两种常见情况。

 

在混合云环境中的监测方面,云管理平台已经显示了容器和虚拟机之间的区别。但面对安全性和合规性,要平衡容器和虚拟机之间的差异性可能还需要更长的时间。

  

关于译者Ghostcloud

Ghostcloud(中文名:精灵云)是成都精灵云科技有限公司旗下的基于Docker的PaaS/CaaS平台品牌,核心团队由来自EMCVeritas、华为、IBMMicrosoft的核心技术主管和架构师组成。国内首批从事容器虚拟化研发的企业,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务。在国内Docker社区贡献排名前三,主创团队曾参与Beego开源项目研发,并主导发布《Docker容器实战:原理、架构与应用》一书。Ghostcloud因容器技术而生,致力于为多个领域的“互联网+”转型企业提供服务,是一流的企业级容器云服务专家。


本文为翻译文章,文章观点归原作者所有

原文链接:https://dzone.com/articles/mastering-the-art-of-container-management

 

目录
相关文章
|
XML Java 编译器
如何使用IOC容器进行对象的管理和创建?
如何使用IOC容器进行对象的管理和创建?
111 0
如何使用IOC容器进行对象的管理和创建?
|
Cloud Native 测试技术 持续交付
Docker Compose 解析:定义和管理多容器应用,从多角度探索其优势和应用场景
Docker Compose 解析:定义和管理多容器应用,从多角度探索其优势和应用场景
423 0
|
7月前
|
存储 Linux 应用服务中间件
容器卷管理
容器卷管理
48 2
|
7月前
|
安全 关系型数据库 开发者
Docker Compose凭借其简单易用的特性,已经成为开发者在构建和管理多容器应用时不可或缺的工具。
Docker Compose是容器编排利器,简化多容器应用管理。通过YAML文件定义服务、网络和卷,一键启动应用环境。核心概念包括服务(组件集合)、网络(灵活通信)、卷(数据持久化)。实战中,编写docker-compose.yml,如设置Nginx和Postgres服务,用`docker-compose up -d`启动。高级特性涉及依赖、环境变量、健康检查和数据持久化。最佳实践涵盖环境隔离、CI/CD、资源管理和安全措施。案例分析展示如何构建微服务应用栈,实现一键部署。Docker Compose助力开发者高效驾驭复杂容器场景。
91 1
|
9月前
|
Java 数据库连接 Docker
【Docker 专栏】Docker 容器内环境变量的管理与使用
【5月更文挑战第9天】本文介绍了Docker容器中环境变量的管理与使用,环境变量用于传递配置信息和设置应用运行环境。设置方法包括在Dockerfile中使用`ENV`指令或在启动容器时通过`-e`参数设定。应用可直接访问环境变量或在脚本中使用。环境变量作用包括传递配置、设置运行环境和动态调整应用行为。使用时注意变量名称和值的合法性、保密性和覆盖问题。理解并熟练运用环境变量能提升Docker技术的使用效率和软件部署质量。
570 0
【Docker 专栏】Docker 容器内环境变量的管理与使用
|
9月前
|
前端开发 Java 容器
家族传承:Spring MVC中父子容器的搭建与管理指南
家族传承:Spring MVC中父子容器的搭建与管理指南
145 3
|
9月前
|
存储 Linux 文件存储
Linux使用Docker部署Traefik容器并实现远程访问管理界面-1
Linux使用Docker部署Traefik容器并实现远程访问管理界面
190 0
|
9月前
|
弹性计算 Shell 数据安全/隐私保护
动态管理Docker容器的自动扩展与缩减
【4月更文挑战第30天】
118 0
|
Cloud Native Docker 容器
【云原生】一文秒会Docker容器企业化管理
【云原生】一文秒会Docker容器企业化管理
74 0
【云原生】一文秒会Docker容器企业化管理
|
运维 网络协议 测试技术
软件测试|docker ps命令 管理和监视容器的利器
软件测试|docker ps命令 管理和监视容器的利器