本结业项目旨在通过构建一系列渐进式的 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 增强版本(优秀要求)
构建一个基于 Docker 的单用户 Jupyter Notebook 环境,适合个人数据分析和学习使用。
- 创建一个基于 Python 数据科学镜像的 Dockerfile
- 配置 docker-compose.yml 文件实现容器编排
- 实现数据持久化存储
- 添加示例数据和欢迎笔记本
- Docker 基础命令
- Dockerfile 编写
- Docker Compose 基础配置
- 数据卷(Volumes)挂载
- 端口映射
- 使用官方的
jupyter/scipy-notebook 或 jupyter/datascience-notebook 作为基础镜像
- 注意配置正确的工作目录和权限
- 使用 Docker Compose 的 volumes 配置实现数据持久化
- 确保 Jupyter 服务可以通过浏览器访问
构建一个支持多用户的 JupyterHub 环境,每个用户拥有独立的工作空间。
- 创建 JupyterHub 的 Dockerfile
- 配置 docker-compose.yml 实现多容器编排
- 编写 jupyterhub_config.py 配置文件
- 实现用户数据的持久化
- 添加基本的系统测试
- Docker 网络配置
- Docker Compose 多服务编排
- JupyterHub 配置
- DockerSpawner 使用
- 容器间通信
- 使用 DockerSpawner 为每个用户创建独立容器
- 配置 Docker 网络使 JupyterHub 能与用户容器通信
- 使用命名卷为每个用户提供持久化存储
- 注意容器的资源限制配置
为 JupyterHub 环境添加 GitHub OAuth 认证,提高系统安全性和用户管理能力。
- 配置 GitHub OAuth 应用
- 更新 jupyterhub_config.py 添加认证配置
- 使用环境变量管理敏感信息
- 实现用户权限管理
- OAuth 认证流程
- Docker 环境变量配置
- Docker Secrets 管理
- JupyterHub 认证插件配置
- 创建 .env.example 文件作为环境变量模板
- 使用 GitHub 的 OAuth 应用设置正确的回调 URL
- 配置管理员用户和访问控制
- 注意保护 OAuth 密钥和令牌
构建一个集成多种 AI 工具和模型的高级 JupyterHub 环境,支持 AI 辅助编程和数据分析。
- 创建支持 AI 工具的自定义 Notebook 镜像
- 配置多种 AI 模型(国际和国内)的接入
- 添加 AI 示例笔记本
- 实现资源限制和管理
- 编写详细的使用文档
- 高级 Dockerfile 多阶段构建
- Docker Compose profiles 配置
- 容器资源限制
- API 密钥管理
- 多容器协作
- 高级网络配置
- 使用 Docker Compose profiles 分离构建和运行环境
- 创建启动和停止脚本简化操作
- 为不同的 AI 模型提供配置选项
- 添加详细的示例和教程
- 考虑国内用户的网络环境,提供替代方案
- 完整的源代码,包含所有 Dockerfile、docker-compose.yml 和配置文件
- README.md 文件,包含项目说明和使用指南
- 循序渐进: 按照阶段顺序完成项目,每个阶段都建立在前一个阶段的基础上
- 参考官方文档: 优先参考官方文档解决问题
- 版本控制: 使用 Git 管理代码,每个阶段完成后提交一次
- 测试验证: 每完成一个功能就进行测试,确保其正常工作
- 记录问题: 记录遇到的问题和解决方案,作为报告的一部分
祝你在项目中取得好成绩!如有任何问题,请随时向导师咨询。