前言:docker学习之路。
第 1 阶段:打牢基础(1-2 天)
学习重点:理解 Docker 核心概念,熟悉基础命令
- 核心概念扫盲
- 搞懂:镜像(Image)、容器(Container)、仓库(Registry) 三者的关系
仓库(Registry):
存放和分发镜像的地方,就像应用的"AppStore"
镜像(lmage):
只读的模板,就像程序的"安装包"或"模具"
容器(Container):
基于镜像创建的运行实例,就像根据模具压出来的"饼干"
- 理解:Docker 解决了「环境一致性」问题(开发/测试/生产环境统一)
- 参考:Docker 官方入门概念(中文可看菜鸟教程)
- 必练基础命令(在你的服务器终端直接敲)
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Bash # 1. 验证 Docker 正常运行 docker run hello-world # 跑官方示例容器,成功输出即环境正常 # 2. 查看本地镜像/容器(root用户直接执行,普通用户需加sudo) docker images # 查看已下载的镜像 docker ps # 查看运行中的容器 docker ps -a # 查看所有容器(含已停止) # 3. 拉取&运行一个常用镜像(比如 Nginx) docker pull nginx # 拉取 Nginx 镜像 docker run -d -p 80:80 --name my-nginx nginx # 后台运行 Nginx,映射 80 端口 # 然后在浏览器输入你的服务器公网 IP,能看到 Nginx 欢迎页就算成功! |
第 2 阶段:核心能力(3-5 天)
学习重点:掌握镜像构建、容器生命周期、数据持久化、网络
- 构建自己的镜像(Dockerfile)
- 学习 Dockerfile 核心指令:FROM/RUN/COPY/WORKDIR/CMD/EXPOSE
- 实战:写一个简单的 Python Web 镜像
|------------------------------------------------------------------------------------------------------------------------------------|
| Dockerfile # Dockerfile 示例 FROM python:3.9-slim WORKDIR /app COPY . . RUN pip install flask EXPOSE 5000 CMD ["python", "app.py"] |
- 构建镜像:docker build -t my-python-app .
- 运行容器:docker run -d -p 5000:5000 my-python-app
- 容器数据持久化
- 问题:容器删除后数据会丢失 → 用数据卷(Volume)或绑定挂载解决
- 示例:运行 MySQL 并持久化数据
|---------------------------------------------------------------------------------------------------------------------------------------|
| Bash docker run -d -p 3306:3306 --name my-mysql \ -v mysql-data:/var/lib/mysql \ # 数据卷挂载 -e MYSQL_ROOT_PASSWORD=123456 \ mysql:8.0 |
Docker 网络
- 理解默认 bridge 网络,容器间通信方式
- 练习:创建自定义网络,让两个容器互相访问
第 3 阶段:多容器编排(2-3 天)
学习重点 :用 docker compose 管理多容器应用(你的版本推荐用 docker compose 而非旧版 docker-compose)
- 先启用 Compose 插件 (你的环境里 docker-compose 命令不存在,是因为新版用插件形式)
|---------------------------------------------------------------------------------|
| Bash # 直接用 docker compose 命令(无需额外安装,Docker 20+ 已内置) docker compose version # 验证 |
- 编写 docker-compose.yml(比如部署「Web + 数据库」场景)
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| YAML # 示例:WordPress + MySQL version: '3' services: db: image: mysql:8.0 volumes: - db-data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress wordpress: image: wordpress ports: - "8080:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: 123456 volumes: db-data: |
- 启动:docker compose up -d
- 停止:docker compose down
第 4 阶段:实战项目(1-2 周)
学习重点:用 Docker 部署真实项目,巩固知识
推荐几个适合新手的实战项目:
- 个人博客 :用 docker compose 部署 WordPress 或 Hexo
- Web 服务:部署自己的 Python/Node.js/Java 后端服务
- 监控工具:部署 Prometheus + Grafana 监控服务器状态
- DevOps 工具:部署 Jenkins 做 CI/CD(代码提交自动构建镜像)
第 5 阶段:进阶拓展(可选)
当你熟练掌握基础后,可以向这些方向深入:
- 容器编排:学习 Docker Swarm 或 Kubernetes(K8s)
- 镜像优化:减小镜像体积(多阶段构建、精简基础镜像)
- 安全:容器安全配置、镜像扫描、最小权限原则
- CI/CD:结合 GitLab CI/Jenkins 实现自动化部署
�� 学习资源推荐
- 官方文档 (最权威):Docker Docs
- 免费教程:菜鸟教程:Docker 教程和B 站:搜索「Docker 入门到实战」,找播放量高的完整课程
- 书籍:《Docker 入门与实践》(适合新手)、《Docker 进阶与实战》
- 在线实验 :Play with Docker(免费在线 Docker 环境,无需自己搭服务器)