logo
0
0
Login
style: 格式化代码,统一缩进风格

Docker 训练营项目指南

项目概述

本结业项目旨在通过构建一系列渐进式的 Jupyter 环境,帮助你掌握 Docker 容器化技术在数据科学平台搭建中的应用。项目分为四个阶段,每个阶段都会增加新的功能和复杂度,让你逐步应用所学的 Docker 知识。

  • 阶段 1-3: 基本要求,完成这些阶段即可达到及格标准
  • 阶段 4: 进阶要求,完成此阶段可获得优秀评价

项目结构

. ├── 01-single-container/ # 阶段1: 单用户 Jupyter 环境 ├── 02-jupyterhub/ # 阶段2: 基础多用户环境 ├── 03-jupyterhub-github-auth/ # 阶段3: GitHub 认证集成 └── 04-jupyterhub-ai-enhanced/ # 阶段4: AI 增强版本(优秀要求)

阶段 1: 单容器 Jupyter 环境

目标

构建一个基于 Docker 的单用户 Jupyter Notebook 环境,适合个人数据分析和学习使用。

需要完成的任务

  1. 创建一个基于 Python 数据科学镜像的 Dockerfile
  2. 配置 docker-compose.yml 文件实现容器编排
  3. 实现数据持久化存储
  4. 添加示例数据和欢迎笔记本

技术要点

  • Docker 基础命令
  • Dockerfile 编写
  • Docker Compose 基础配置
  • 数据卷(Volumes)挂载
  • 端口映射

参考资源

提示

  • 使用官方的 jupyter/scipy-notebookjupyter/datascience-notebook 作为基础镜像
  • 注意配置正确的工作目录和权限
  • 使用 Docker Compose 的 volumes 配置实现数据持久化
  • 确保 Jupyter 服务可以通过浏览器访问

阶段 2: JupyterHub 多用户环境

目标

构建一个支持多用户的 JupyterHub 环境,每个用户拥有独立的工作空间。

需要完成的任务

  1. 创建 JupyterHub 的 Dockerfile
  2. 配置 docker-compose.yml 实现多容器编排
  3. 编写 jupyterhub_config.py 配置文件
  4. 实现用户数据的持久化
  5. 添加基本的系统测试

技术要点

  • Docker 网络配置
  • Docker Compose 多服务编排
  • JupyterHub 配置
  • DockerSpawner 使用
  • 容器间通信

参考资源

提示

  • 使用 DockerSpawner 为每个用户创建独立容器
  • 配置 Docker 网络使 JupyterHub 能与用户容器通信
  • 使用命名卷为每个用户提供持久化存储
  • 注意容器的资源限制配置

阶段 3: GitHub 认证集成

目标

为 JupyterHub 环境添加 GitHub OAuth 认证,提高系统安全性和用户管理能力。

需要完成的任务

  1. 配置 GitHub OAuth 应用
  2. 更新 jupyterhub_config.py 添加认证配置
  3. 使用环境变量管理敏感信息
  4. 实现用户权限管理

技术要点

  • OAuth 认证流程
  • Docker 环境变量配置
  • Docker Secrets 管理
  • JupyterHub 认证插件配置

参考资源

提示

  • 创建 .env.example 文件作为环境变量模板
  • 使用 GitHub 的 OAuth 应用设置正确的回调 URL
  • 配置管理员用户和访问控制
  • 注意保护 OAuth 密钥和令牌

阶段 4: AI 增强版本(优秀要求)

目标

构建一个集成多种 AI 工具和模型的高级 JupyterHub 环境,支持 AI 辅助编程和数据分析。

需要完成的任务

  1. 创建支持 AI 工具的自定义 Notebook 镜像
  2. 配置多种 AI 模型(国际和国内)的接入
  3. 添加 AI 示例笔记本
  4. 实现资源限制和管理
  5. 编写详细的使用文档

技术要点

  • 高级 Dockerfile 多阶段构建
  • Docker Compose profiles 配置
  • 容器资源限制
  • API 密钥管理
  • 多容器协作
  • 高级网络配置

参考资源

提示

  • 使用 Docker Compose profiles 分离构建和运行环境
  • 创建启动和停止脚本简化操作
  • 为不同的 AI 模型提供配置选项
  • 添加详细的示例和教程
  • 考虑国内用户的网络环境,提供替代方案

提交要求

  1. 完整的源代码,包含所有 Dockerfile、docker-compose.yml 和配置文件
  2. README.md 文件,包含项目说明和使用指南

实施建议

  1. 循序渐进: 按照阶段顺序完成项目,每个阶段都建立在前一个阶段的基础上
  2. 参考官方文档: 优先参考官方文档解决问题
  3. 版本控制: 使用 Git 管理代码,每个阶段完成后提交一次
  4. 测试验证: 每完成一个功能就进行测试,确保其正常工作
  5. 记录问题: 记录遇到的问题和解决方案,作为报告的一部分

祝你在项目中取得好成绩!如有任何问题,请随时向导师咨询。