Docker 是一个开源的容器化平台,用于构建、打包、分发和运行应用程序及其依赖项 📅 2026/8/5 11:08:30 Docker 是一个开源的容器化平台用于构建、打包、分发和运行应用程序及其依赖项。它基于操作系统级虚拟化即容器技术利用 Linux 内核的命名空间Namespaces和控制组cgroups等特性实现进程隔离、资源限制与环境一致性。Docker 容器引擎Docker Engine是 Docker 的核心组件包含Docker Daemondockerd后台守护进程负责管理镜像、容器、网络和存储卷等Docker CLIdocker命令行接口用户通过它与 daemon 通信如docker run,docker buildContainerd 和 runcDocker Engine 底层依赖的标准化容器运行时自 Docker 18.09 起默认集成 containerd 作为运行时管理器runc 为 OCI 兼容的容器运行时。Docker 镜像Image是只读模板包含运行应用所需的所有文件系统层容器Container则是镜像的可运行实例具有独立的文件系统、网络、进程空间轻量、快速启动、跨环境一致。# 示例运行一个 Nginx 容器dockerrun-d-p8080:80--namemy-nginx nginx:alpineDocker 容器与虚拟机VM的核心区别在于虚拟化层级不同导致在架构、启动速度、资源开销、隔离性与适用场景等方面存在显著差异维度Docker 容器虚拟机VM虚拟化层级操作系统级虚拟化OS-level virtualization硬件级虚拟化Hypervisor 层如 KVM、Hyper-V内核共享共享宿主机 Linux 内核同一内核多个用户空间每个 VM 运行独立的客户操作系统 完整内核含驱动启动速度毫秒级启动仅需启动进程秒级至分钟级需加载 Guest OS 内核、服务等资源开销极低无冗余 OS 开销内存/CPU 占用小密度高较高每个 VM 需分配独占内存、CPU、磁盘有明显开销镜像/模板镜像分层存储UnionFS复用基础层体积小MB级虚拟磁盘文件如 .qcow2/.vmdk通常 GB 级隔离性进程/文件系统/网络/IPC 隔离通过 Namespaces cgroups轻量隔离安全性依赖内核加固强隔离硬件级沙箱Guest OS 与宿主完全解耦更强安全边界可移植性依赖宿主机内核版本和兼容性如 Linux 容器无法直接运行于 Windows 内核除非通过 WSL2跨平台性强x86 VM 可在任意支持 Hypervisor 的硬件上运行典型用途微服务部署、CI/CD 构建环境、云原生应用快速扩缩容运行异构操作系统如 Windows Server on Linux host、遗留系统迁移、强合规/多租户隔离场景✅ 补充说明Docker 容器不是进程而是进程组命名空间cgroups 的组合体本质是受控的 Linux 进程VM 提供“操作系统虚拟化”容器提供“进程虚拟化”安全敏感场景如多租户 SaaS 平台常采用“VM 容器”嵌套方案如 AWS Firecracker、Google gVisor 或 Kata Containers兼顾性能与强隔离。