Docker 学习之路-从入门到放弃:1

前言:docker学习之路。

第 1 阶段:打牢基础(1-2 天)

学习重点:理解 Docker 核心概念,熟悉基础命令

  1. 核心概念扫盲
  • 搞懂:镜像(Image)、容器(Container)、仓库(Registry) 三者的关系

仓库(Registry):

存放和分发镜像的地方,就像应用的"AppStore"

镜像(lmage):

只读的模板,就像程序的"安装包"或"模具"

容器(Container):

基于镜像创建的运行实例,就像根据模具压出来的"饼干"

  • 理解:Docker 解决了「环境一致性」问题(开发/测试/生产环境统一)
  1. 必练基础命令(在你的服务器终端直接敲)

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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 天)

学习重点:掌握镜像构建、容器生命周期、数据持久化、网络

  1. 构建自己的镜像(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
  1. 容器数据持久化
  • 问题:容器删除后数据会丢失 → 用数据卷(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)

  1. 先启用 Compose 插件 (你的环境里 docker-compose 命令不存在,是因为新版用插件形式)

|---------------------------------------------------------------------------------|
| Bash # 直接用 docker compose 命令(无需额外安装,Docker 20+ 已内置) docker compose version # 验证 |

  1. 编写 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 部署真实项目,巩固知识

推荐几个适合新手的实战项目:

  1. 个人博客 :用 docker compose 部署 WordPress 或 Hexo
  2. Web 服务:部署自己的 Python/Node.js/Java 后端服务
  3. 监控工具:部署 Prometheus + Grafana 监控服务器状态
  4. DevOps 工具:部署 Jenkins 做 CI/CD(代码提交自动构建镜像)

第 5 阶段:进阶拓展(可选)

当你熟练掌握基础后,可以向这些方向深入:

  • 容器编排:学习 Docker Swarm 或 Kubernetes(K8s)
  • 镜像优化:减小镜像体积(多阶段构建、精简基础镜像)
  • 安全:容器安全配置、镜像扫描、最小权限原则
  • CI/CD:结合 GitLab CI/Jenkins 实现自动化部署

�� 学习资源推荐

  1. 官方文档 (最权威):Docker Docs
  2. 免费教程:菜鸟教程:Docker 教程和B 站:搜索「Docker 入门到实战」,找播放量高的完整课程
  3. 书籍:《Docker 入门与实践》(适合新手)、《Docker 进阶与实战》
  4. 在线实验Play with Docker(免费在线 Docker 环境,无需自己搭服务器)
相关推荐
.柒宇.14 小时前
docker容器技术实战
运维·docker·容器
倔强的胖蚂蚁15 小时前
信创企业级 openEuler 24 部署 docker-ce 全指南
运维·docker·云原生·容器
red_redemption15 小时前
自由学习记录(165)
学习
Mark White15 小时前
深入理解 Linux 打印体系:CUPS、驱动、ULD 与 Docker 容器化
linux·运维·docker
我命由我1234516 小时前
U 盘里出现的文件 BOOTEX.LOG
运维·服务器·经验分享·笔记·学习·硬件工程·学习方法
Gary Studio16 小时前
ZVS原理
学习
weixin_5134499616 小时前
EXTREME-PARKOUR项目学习记录
人工智能·学习·算法·机器人
呱呱巨基16 小时前
网络基础概念
linux·网络·c++·笔记·学习
岳来16 小时前
docker network 创建 host 和 none 网络模式
网络·docker·容器·docker network
Strugglingler16 小时前
Docker入门
docker·容器