[容器]基础知识

容器是什么?

容器(Container) 是一种轻量化的 应用隔离技术 ,本质是通过 Linux 内核的 命名空间(Namespaces)控制组(cgroups) 实现的进程级虚拟化。

容器将应用程序及其依赖(库、配置文件、环境变量等)打包在一个独立环境中运行,具有以下特点:

特性 说明
轻量化 共享宿主机内核,无需虚拟化硬件,资源占用极低(秒级启动)
隔离性 通过 Namespaces 隔离进程、网络、文件系统等资源
资源限制 通过 cgroups 限制 CPU、内存、磁盘 I/O 等资源使用
一致性 镜像(Image)保证开发、测试、生产环境一致
可移植性 容器镜像可在任意支持容器运行时的平台(Linux/Windows)执行

容器 vs 虚拟机(VM)

容器 虚拟机
虚拟化层级 进程级(共享宿主机内核) 硬件级(通过 Hypervisor 虚拟化)
启动速度 秒级 分钟级
资源占用 低(仅应用所需资源) 高(需分配完整操作系统资源)
隔离性 进程级隔离(较弱) 完全隔离(更强)

容器和 Pod 的关系

1. Pod 是什么?

Pod 是 Kubernetes 中的最小调度单元,由 一个或多个容器 组成,这些容器:

  • 共享网络命名空间 :Pod 内所有容器使用相同的 IP 和端口范围,可通过 localhost 直接通信。
  • 共享存储卷(Volume) :容器可访问同一组持久化存储(如共享配置文件、日志目录)。
  • 生命周期一致:Pod 启动时,内部容器同时创建;Pod 终止时,容器同时销毁。

2. 为什么需要 Pod?

  • 协作场景:若多个容器需紧密协作(如主应用 + 日志收集器、主服务 + Sidecar 代理),通过 Pod 统一管理更方便。
  • 资源复用:共享网络和存储,避免重复配置。
  • Kubernetes 调度基础:Kubernetes 直接管理 Pod 而非单个容器。

3. 容器与 Pod 的关系

  • 层级关系:Pod 是容器的逻辑组合,一个 Pod 包含一个或多个容器。

  • 共享与隔离

    • 共享:网络、存储卷、部分内核命名空间。
    • 隔离:每个容器有独立的文件系统、进程空间(除非显式共享)。

示例场景

plaintext

复制

yaml 复制代码
Pod: "web-server"
├── Container 1: Nginx(主服务,监听 80 端口)
└── Container 2: Filebeat(日志收集器,读取 Nginx 的日志文件)
  • 两个容器共享 Pod 的 IP 和网络,Nginx 可通过 localhost:8080 访问同一 Pod 中的另一个服务。
  • 它们通过共享存储卷(Volume)访问同一日志目录。

Podman 中的 Pod 管理

Podman 支持直接创建和管理 Pod(无需 Kubernetes),命令示例:

bash

复制

perl 复制代码
# 创建一个 Pod(分配共享网络和存储)
podman pod create --name my-pod

# 向 Pod 中添加容器
podman run -d --pod my-pod nginx
podman run -d --pod my-pod filebeat

# 查看 Pod 状态
podman pod ls

总结

概念 容器 Pod
定位 单个应用进程的隔离环境 一组容器的逻辑组合
共享资源 无(默认独立) 网络、存储卷、部分命名空间
使用场景 运行单一服务 管理协作密切的多容器服务组
管理工具 Docker、Podman、containerd 等 Kubernetes、Podman

核心关系

  • Pod 是容器的"逻辑外壳",用于管理协作型容器组。
  • 容器是 Pod 的组成部分,负责实际运行业务逻辑。
相关推荐
阳光是sunny14 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
灯澜忆梦15 小时前
GO_并发编程---定时器
开发语言·后端·golang
阳光是sunny15 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
皮皮林55115 小时前
开源实力派,给本地 AI 装上深度调研能力,一张 3090 跑到 95.7 分!
后端
努力的小雨16 小时前
把 Windows 桌面图标做成一个会自己运转的小世界
后端
武子康16 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
腾渊信息科技公司17 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
IT_陈寒18 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端
段一凡-华北理工大学18 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
码事漫谈19 小时前
1999年的电商前夜和2026年的AI前夜 历史押韵但从不重复
后端