什么是 Docker
Docker 是当前最流行的容器化平台,它将应用及其全部依赖(代码、运行时、系统工具、库)打包成一个轻量、可移植的单元,实现「一次构建,处处运行」。
为什么需要容器
传统部署中,「在我机器上能跑」是经典难题:开发、测试、生产环境不一致,导致依赖冲突、版本错配。容器通过隔离 + 标准化解决它:
- 隔离:每个容器拥有独立的进程空间、文件系统和网络,互不干扰。
- 标准化:无论跑在笔记本、服务器还是开发板,行为一致。
容器 vs 虚拟机
| 对比项 | 虚拟机(VM) | 容器(Container) |
|---|---|---|
| 虚拟化层级 | 硬件 + 完整 Guest OS | 操作系统进程级 |
| 启动速度 | 秒级 ~ 分钟级 | 毫秒 ~ 秒级 |
| 资源占用 | 高(每 VM 含完整 OS) | 低(共享主机内核) |
| 隔离强度 | 强(内核级隔离) | 中(命名空间隔离) |
💡 容器共享主机内核,因此比虚拟机更轻量;但也意味着容器内无法运行与原主机不同内核的系统(如在 Linux 主机上跑 Windows 容器需额外配置)。
核心组件
Docker 采用客户端-服务端架构:
- Docker 客户端(CLI):你执行的
docker命令。 - Docker 守护进程(daemon):后台服务,负责构建、运行、分发容器。
- Docker 仓库(Registry):存储镜像的中心,默认是 Docker Hub。
提示
典型工作流
编写 Dockerfile → docker build 构建镜像 → docker push 推送到仓库 ↓ docker pull / docker run 运行容器接下来阅读 核心概念 了解镜像、容器、数据卷与网络的关系。