Appearance
学习路线
学习路线图
阶段一:入门 阶段二:基础 阶段三:进阶 阶段四:生产
↓ ↓ ↓ ↓
Docker 概念 镜像操作 Dockerfile 安全加固
Docker 架构 容器操作 多阶段构建 性能优化
安装配置 数据卷 网络深入 日志监控
Hello World 网络基础 Compose 编排 CI/CD 集成
Swarm 集群 微服务实践第一阶段:入门(1-2 天)
学习目标
- 理解 Docker 是什么以及为什么需要它
- 掌握镜像、容器、仓库等核心概念
- 了解 Docker 架构
- 完成 Docker 安装
学习内容
- Docker 简介 — 容器化的背景和 Docker 的价值
- 核心概念 — 镜像、容器、仓库、Dockerfile
- 整体架构 — Client、Daemon、Registry、存储驱动
- 环境安装 — 根据操作系统选择安装方式
实践任务
- [ ] 安装 Docker
- [ ] 运行
docker run hello-world - [ ] 运行
docker run -it ubuntu bash进入容器交互 - [ ] 运行
docker run -d -p 80:80 nginx启动 Nginx
第二阶段:基础操作(3-5 天)
学习目标
- 熟练使用 Docker 命令行工具
- 掌握镜像的拉取、查看、删除等操作
- 掌握容器的创建、启动、停止、删除等操作
- 理解数据卷和网络的基本概念
学习内容
- 镜像管理 — pull / push / build / tag / inspect
- 容器管理 — run / start / stop / rm / exec / logs
- 容器生命周期 — created / running / paused / stopped
- 数据卷 — 挂载、持久化数据
- 网络管理 — 端口映射、容器互联
实践任务
- [ ] 搭建一个 Nginx 静态网站
- [ ] 运行 MySQL 容器并持久化数据
- [ ] 两个容器之间通过网络通信
第三阶段:镜像构建(3-5 天)
学习目标
- 掌握 Dockerfile 的编写
- 理解镜像分层原理
- 学会多阶段构建优化镜像大小
- 了解镜像构建最佳实践
学习内容
- Dockerfile 基础 — FROM、RUN、COPY、CMD 等基础指令
- Dockerfile 指令详解 — 所有指令的用法和区别
- 多阶段构建 — 减小镜像体积的技巧
- 构建最佳实践 — 缓存利用、层优化、安全
实践任务
- [ ] 将一个 Node.js 应用打包成 Docker 镜像
- [ ] 使用多阶段构建优化镜像大小
- [ ] 将镜像推送到 Docker Hub
第四阶段:网络与存储(2-3 天)
学习目标
- 深入理解 Docker 网络模式
- 掌握自定义网络的配置
- 掌握数据卷的高级用法
学习内容
- 网络模式详解 — bridge、host、none、overlay
- 自定义网络 — 创建用户定义网络
- 容器互联 — 同网络容器通信
- 数据卷管理 — 命名卷、匿名卷
- 绑定挂载 — 宿主机目录挂载
实践任务
- [ ] 创建自定义网络,多容器通过服务名通信
- [ ] 数据卷备份与恢复
第五阶段:服务编排(5-7 天)
学习目标
- 掌握 Docker Compose 管理多容器应用
- 了解 Docker Swarm 集群原理
- 能够编写生产级 Compose 文件
学习内容
- Docker Compose 基础 — 安装、基本用法
- Compose 文件详解 — services、networks、volumes 配置
- Compose 常用命令 — up、down、ps、logs、scale
- Docker Swarm — 集群初始化、服务部署
- Swarm 集群管理 — 扩缩容、滚动更新、服务发现
实践任务
- [ ] 使用 Compose 搭建 WordPress(Nginx + PHP + MySQL)
- [ ] 使用 Compose 搭建开发环境
- [ ] 初始化 Swarm 集群,部署服务
第六阶段:实战部署(持续练习)
学习目标
- 能够容器化部署各类常见软件
- 掌握生产环境配置技巧
实践项目
Web 服务器
- [ ] Nginx 反向代理配置
- [ ] Apache 虚拟主机配置
- [ ] Tomcat Java 应用部署
数据库
- [ ] MySQL 主从复制
- [ ] Redis 集群
- [ ] MongoDB 副本集
运行环境
- [ ] Node.js 应用部署
- [ ] Python Flask/Django 应用部署
- [ ] PHP Laravel 应用部署
第七阶段:生产实践(进阶)
学习目标
- 掌握容器安全最佳实践
- 了解性能监控和优化
- 能够搭建 CI/CD 流水线
学习内容
- 安全实践 — 最小权限、镜像扫描、Secrets 管理
- 性能优化 — 资源限制、存储优化
- 日志管理 — 日志驱动、集中收集
- 监控方案 — cAdvisor + Prometheus + Grafana
- CI/CD 集成 — GitHub Actions、GitLab CI、Jenkins
推荐学习资源
官方文档
在线学习
- Play with Docker — 免费在线 Docker 实验室
- Katacoda Docker 课程
书籍推荐
- 《Docker 深入浅出》
- 《第一本 Docker 书》
- 《Docker — 容器与容器云》
常见问题
需要多少基础?
- 了解基本的 Linux 命令行操作
- 了解基本的网络概念(IP、端口、DNS)
- 有一定的开发或运维经验更好,但不是必须的
学习周期?
- 入门基础:1-2 周
- 熟练使用:1-2 月
- 生产实践:持续学习
先学 Docker 还是 Kubernetes?
建议先打好 Docker 基础,再学习 Kubernetes。Docker 是 K8s 的基础,理解容器原理后学习 K8s 会更加顺畅。