加载中...
Docker 将应用及其依赖打包进轻量级容器,实现「在我机器上能跑,在任何地方都能跑」。2013 年发布后迅速成为云原生开发的标准工具,与 Kubernetes 组合几乎统一了现代后端部署方式。

| 类型 | 容器化平台 |
| 发布时间 | 2013 年 3 月(dotCloud 公司) |
| 核心技术 | Linux Namespace + Cgroups + Union FS |
虚拟机(VM)在宿主机上模拟完整的硬件,每个 VM 跑一个独立的操作系统内核,开销大、启动慢(数十秒到分钟级)。容器共享宿主机的 Linux 内核,利用 Namespace(隔离进程、网络、文件系统视图)和 Cgroups(限制 CPU、内存资源)实现隔离,启动时间以毫秒计,镜像大小通常 50-200MB。
Docker 并非发明了容器技术(Linux LXC 早于它),但它提供了极为友好的开发者体验:一个 Dockerfile 描述构建步骤,docker build 生成镜像,docker run 即可运行,docker push 推送到 Docker Hub 共享。[1]
Docker 镜像采用联合文件系统(Union FS)分层存储:基础层(如 ubuntu:22.04)只需下载一次,多个镜像共享,只有差异层单独存储。典型的 Node.js 应用镜像结构:基础 OS 层 → Node 运行时层 → 依赖安装层(node_modules)→ 应用代码层。
安全方面,容器共享内核意味着内核漏洞可能影响所有容器。最佳实践包括:不以 root 用户运行进程、使用只读文件系统挂载、定期扫描镜像漏洞(Trivy、Snyk)、不把 SSH 密钥或 API Key 写进镜像层。

| 类型 | 容器化平台 |
| 发布时间 | 2013 年 3 月(dotCloud 公司) |
| 核心技术 | Linux Namespace + Cgroups + Union FS |
登录 后参与讨论
暂无讨论,来发表第一条评论吧