Skip to content

学习路线

学习路线图

阶段一:入门         阶段二:基础          阶段三:进阶          阶段四:生产
  ↓                    ↓                    ↓                    ↓
Docker 概念          镜像操作             Dockerfile           安全加固
Docker 架构          容器操作             多阶段构建            性能优化
安装配置             数据卷               网络深入              日志监控
Hello World          网络基础             Compose 编排          CI/CD 集成
                                          Swarm 集群           微服务实践

第一阶段:入门(1-2 天)

学习目标

  • 理解 Docker 是什么以及为什么需要它
  • 掌握镜像、容器、仓库等核心概念
  • 了解 Docker 架构
  • 完成 Docker 安装

学习内容

  1. Docker 简介 — 容器化的背景和 Docker 的价值
  2. 核心概念 — 镜像、容器、仓库、Dockerfile
  3. 整体架构 — Client、Daemon、Registry、存储驱动
  4. 环境安装 — 根据操作系统选择安装方式

实践任务

  • [ ] 安装 Docker
  • [ ] 运行 docker run hello-world
  • [ ] 运行 docker run -it ubuntu bash 进入容器交互
  • [ ] 运行 docker run -d -p 80:80 nginx 启动 Nginx

第二阶段:基础操作(3-5 天)

学习目标

  • 熟练使用 Docker 命令行工具
  • 掌握镜像的拉取、查看、删除等操作
  • 掌握容器的创建、启动、停止、删除等操作
  • 理解数据卷和网络的基本概念

学习内容

  1. 镜像管理 — pull / push / build / tag / inspect
  2. 容器管理 — run / start / stop / rm / exec / logs
  3. 容器生命周期 — created / running / paused / stopped
  4. 数据卷 — 挂载、持久化数据
  5. 网络管理 — 端口映射、容器互联

实践任务

  • [ ] 搭建一个 Nginx 静态网站
  • [ ] 运行 MySQL 容器并持久化数据
  • [ ] 两个容器之间通过网络通信

第三阶段:镜像构建(3-5 天)

学习目标

  • 掌握 Dockerfile 的编写
  • 理解镜像分层原理
  • 学会多阶段构建优化镜像大小
  • 了解镜像构建最佳实践

学习内容

  1. Dockerfile 基础 — FROM、RUN、COPY、CMD 等基础指令
  2. Dockerfile 指令详解 — 所有指令的用法和区别
  3. 多阶段构建 — 减小镜像体积的技巧
  4. 构建最佳实践 — 缓存利用、层优化、安全

实践任务

  • [ ] 将一个 Node.js 应用打包成 Docker 镜像
  • [ ] 使用多阶段构建优化镜像大小
  • [ ] 将镜像推送到 Docker Hub

第四阶段:网络与存储(2-3 天)

学习目标

  • 深入理解 Docker 网络模式
  • 掌握自定义网络的配置
  • 掌握数据卷的高级用法

学习内容

  1. 网络模式详解 — bridge、host、none、overlay
  2. 自定义网络 — 创建用户定义网络
  3. 容器互联 — 同网络容器通信
  4. 数据卷管理 — 命名卷、匿名卷
  5. 绑定挂载 — 宿主机目录挂载

实践任务

  • [ ] 创建自定义网络,多容器通过服务名通信
  • [ ] 数据卷备份与恢复

第五阶段:服务编排(5-7 天)

学习目标

  • 掌握 Docker Compose 管理多容器应用
  • 了解 Docker Swarm 集群原理
  • 能够编写生产级 Compose 文件

学习内容

  1. Docker Compose 基础 — 安装、基本用法
  2. Compose 文件详解 — services、networks、volumes 配置
  3. Compose 常用命令 — up、down、ps、logs、scale
  4. Docker Swarm — 集群初始化、服务部署
  5. 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 流水线

学习内容

  1. 安全实践 — 最小权限、镜像扫描、Secrets 管理
  2. 性能优化 — 资源限制、存储优化
  3. 日志管理 — 日志驱动、集中收集
  4. 监控方案 — cAdvisor + Prometheus + Grafana
  5. CI/CD 集成 — GitHub Actions、GitLab CI、Jenkins

推荐学习资源

官方文档

在线学习

书籍推荐

  • 《Docker 深入浅出》
  • 《第一本 Docker 书》
  • 《Docker — 容器与容器云》

常见问题

需要多少基础?

  • 了解基本的 Linux 命令行操作
  • 了解基本的网络概念(IP、端口、DNS)
  • 有一定的开发或运维经验更好,但不是必须的

学习周期?

  • 入门基础:1-2 周
  • 熟练使用:1-2 月
  • 生产实践:持续学习

先学 Docker 还是 Kubernetes?

建议先打好 Docker 基础,再学习 Kubernetes。Docker 是 K8s 的基础,理解容器原理后学习 K8s 会更加顺畅。