容器、Docker 与 Kubernetes 技术全解析
1. 容器的概念与优势
容器对于代码而言,就如同大型金属箱对于航运一样,它是一种标准格式,代表着软件及其运行环境,同时提供运行和管理该环境的工具,确保软件能在任何平台上运行。使用容器有一个重要的副产品——隔离。
在没有容器的情况下,运输物品存在风险,物品可能会被重物挤压。同样,在没有容器的软件环境中,如果一台大型机器同时运行 Web 服务器和数据库,当数据库收到大量 SQL 查询时,Web 服务器可用的 CPU 周期会大幅减少,从而影响其处理 Web 请求的能力。但使用两个独立的容器可以解决这个问题。物理容器有墙壁防止物品被压坏,软件容器则在虚拟环境中运行,也有类似的隔离机制,让你可以精确分配底层资源。
此外,在同一虚拟机上运行的应用程序虽然可能共享相同的库和操作系统,但当它们需要不同版本的共享库时,协调这些需求会变得非常复杂。通过将应用程序容器化,共享库不再共享,依赖关系被隔离到单个应用程序中。
| 对比项 | 无容器 | 有容器 |
|---|---|---|
| 资源竞争 | 存在,相互影响 | 隔离,互不干扰 |
| 共享库管理 | 复杂,需协调版本 | 简单,依赖独立 |
下面是应用有无容器的对比示意图:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



