课程 在 Docker 技能树

Docker 实践挑战

本课程包含大量 Docker 相关的挑战,每个挑战都是一个小的 Docker 项目,配有详细的说明和解决方案。通过解决这些挑战,你可以练习 Docker 技能,提高问题解决能力,并学习如何编写简洁高效的代码。

DockerDevOps

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

通过 19 个实践挑战强化 Docker 技能,涵盖容器操作、镜像构建与分发、应用部署、网络、持久化数据、Compose 和 Swarm 入门流程。每个挑战都会给出一个小型运维目标,并提供结果示例或操作说明与解决方案,因此它是一套可获得支持的练习题,而不是完全无提示的考试。

题目从聚焦的 CLI 命令延伸到 Jenkins 部署、本地镜像 registry、Compose 网络和 Swarm stack 等多容器场景。由于单个挑战的难度从 Beginner 到 Advanced 不等,本课程更适合已经理解 Docker 基本术语和命令结构的学习者进行应用练习。

你将学到什么

完成课程后,你将能够:

  • 在常见生命周期场景中创建、启动、attach、detach、更新、检查、停止和删除容器。
  • 配置容器名称、环境变量、绑定挂载,以及指定、随机或多个主机端口映射。
  • 使用 Dockerfile 构建和修改镜像,打包简单的 Python、Node.js、Go、Nginx 与 Jenkins 示例,并使用多阶段构建。
  • 搜索 Docker Hub、标记和推送镜像,并运行本地 Docker Registry 完成本地 push 与 pull 流程。
  • 使用 bridge 网络、旧式 link、容器名称和环境值连接容器,并通过 exec、ping 或应用请求测试通信。
  • 为 Jenkins 和单机多容器应用场景定义 Compose 服务与网络。
  • 初始化 Docker Swarm,从 Compose 格式文件部署 stack,并将示例服务扩展到多个副本。
  • 创建命名 volume 与绑定挂载,在主机和容器间复制文件,共享数据并备份和恢复 volume 内容。

本课程适合谁

本课程适合已经理解 Docker 基础概念,希望通过比线性入门教程更多样的任务进行重复练习的学习者。它适合希望把目标状态转化为 Docker CLI、Dockerfile 或 Compose 操作的开发者、运维学习者和初级 DevOps 从业者。

前置要求: 你应已了解镜像与容器,能运行基本 Docker 命令、在 Linux 目录中导航并编辑文本和 YAML 文件。了解 Dockerfile、端口和 volume 会很有帮助,因为部分挑战从中级难度开始,概念讲解少于基础课程。

学习环境: 19 个挑战均在平台提供且支持 Docker 的 Ubuntu 22.04 桌面环境中运行。大部分操作在终端完成,部署 Web 应用时会使用本地浏览器检查;每个挑战会提供项目文件和 Docker 权限。

常见问题

它与 Docker 入门指南有何区别?

Docker 入门指南通过引导式实验和后续检查教授概念;本课程则是覆盖面更广的挑战题集,在复习核心命令的同时加入 Jenkins、本地 registry、Compose 场景和基础 Swarm stack。建议先掌握基础,再用本课程扩展练习广度。

需要 Docker Hub 账号吗?

其中一个挑战要求把构建好的镜像推送到 Docker Hub,并明确要求该步骤使用账号。另一个 registry 挑战在本地运行 registry,大多数题目使用公开镜像或本地产物;课程不涉及付费云基础设施。

Docker Compose 和 Swarm 会讲到多深?

它们只通过少量边界明确的任务进行介绍,并非完整教学。你会用 Compose 部署 Jenkins 和网络服务,再初始化 Swarm、部署一个 stack 并扩展示例服务;多节点管理、安全、升级和生产运维不在课程范围内。

挑战完全没有操作指引吗?

不是。题目采用挑战形式,但许多内容包含目标、结果示例、详细说明和解决方案。你可以先独立尝试,再在需要时参考提供的材料。

教师

labby
Labby
Labby is the LabEx teacher.