学习 Docker 可以带来什么?
学习 Docker,并不是为了多会一个指令,而是改变你开发、部署与交付软件的方式。
解决「环境不一致」的问题
在没有 Docker 之前,开发常见的困扰是:
- 本机可以运行,服务器不能运行
- Python / Node / Java 版本不同
- 第三方套件版本冲突
- 系统库缺失
Docker 的做法是:
把 应用 + 运行环境 + 依赖 全部打包在一起
结果是:
- 在哪里运行,结果都一样
- 开发、测试、正式环境完全一致
- 不再需要反复调环境
大幅降低部署与交付成本
传统部署需要:
- 安装操作系统
- 配置运行环境
- 安装依赖
- 手动调整设定
使用 Docker 后:
- 一条指令即可启动服务
- 不依赖服务器原本环境
- 新服务器可立即上线
这对个人开发者、小团队、教学环境尤其重要。
提高学习与实验效率
Docker 让你可以:
- 快速尝试新技术
- 不污染本机系统
- 用完即删
例如:
- 同时使用多个 Python 版本
- 测试不同数据库(MySQL / PostgreSQL / MongoDB)
- 快速搭建测试环境
提升专业度与工程能力
Docker 已经成为现代软件工程的基础能力:
- Web 后端
- 数据工程
- 机器学习
- DevOps
- 云端部署
会 Docker,代表你:
- 能独立完成部署
- 能参与真实专案
- 技术栈是「可上线级别」
为进阶技术打基础
Docker 是许多进阶技术的前置知识:
- Docker Compose
- Kubernetes
- CI/CD 自动部署
- 云原生架构
不懂 Docker,后续学习会出现断层。
什么是 Docker?
一句话理解 Docker
Docker 是一种把应用及其运行环境打包成「容器」的技术,让应用可以在任何地方以相同方式运行。
Docker 的核心概念:容器
Docker 使用的是「容器」而不是「虚拟机」。
容器的特点:
- 彼此隔离
- 共享宿主机内核
- 启动速度快
- 占用资源少
容器不是完整操作系统,而是:
在同一个操作系统上,创建多个独立运行的应用环境
ocker 与虚拟机的差异
| 项目 | Docker 容器 | 虚拟机 |
|---|---|---|
| 是否包含完整 OS | 否 | 是 |
| 启动速度 | 秒级 | 分钟级 |
| 系统资源消耗 | 少 | 多 |
| 适合场景 | 应用服务 | 完整系统 |
Docker 的基本组成
Docker 主要由三部分构成:
-
镜像(Image)
- 应用的模板
- 只读
- 可重复使用
-
容器(Container)
- 镜像的运行实例
- 有生命周期
- 可随时销毁
-
镜像仓库(Registry)
- 存放镜像的地方
- 如 Docker Hub
Docker 的工作流程(概念层面)
- 从镜像仓库下载镜像
- 使用镜像创建容器
- 在容器中运行应用
- 停止并删除容器
用生活化方式理解 Docker
你可以这样理解:
- 镜像 = 食谱
- 容器 = 按食谱做出来的菜
- Docker = 标准化厨房
- 宿主机 = 厨房所在的房子
不管在哪个厨房,只要食谱一样,做出来的菜就一样。