自己动手写 Docker, 想深入的了解容器技术, 以及自己实现一个简易版本, 后续可以运用在评测机中
项目启发于 自己动手写 Docker。
ZDocker 是一个用 Go 语言实现的简易版 Docker 容器引擎,旨在深入理解容器技术的核心原理。通过实现 Linux 命名空间隔离、cgroups 资源限制、镜像管理、网络配置等功能,本项目提供了一个学习容器技术的实践平台。
- 基于 Linux Namespace 实现容器隔离
- 使用 cgroups 进行资源限制和管理
- 容器镜像的构建与管理
- 容器网络配置
- 简易容器运行时实现
- Go 语言
- Linux 系统编程
- Namespace 隔离技术
- Cgroups 资源控制
- 网络虚拟化
- 文件系统管理
git clone https://github.com/crazyfrankie/zdocker.git
cd zdocker
go build -o zdocker# 运行容器
./zdocker run -t [image] [command]
# 查看运行中的容器
./zdocker ps
# 查看帮助
./zdocker --help- 看原书第二章
- 动手实现书中示例
- 看原书第三章
- 动手实现容器
- 看原书第四章
- 实现构造镜像
- 看原书第五章
- 实现构建容器进阶
- 看原书第六章
- 实现容器网络
- 看原书第七章
- 基础容器运行时
- 资源限制 (cgroups)
- 容器网络配置
- 数据卷 (volume) 支持
- 容器镜像管理
- 容器编排简易实现
- 容器安全加固
- 优化容器启动性能
- 实现简易的容器编排系统
- 支持更多网络模式
- 完善镜像构建功能
- 集成到评测机系统
zdocker/
├── cmd/ # 命令行入口
├── container/ # 容器核心实现
├── network/ # 网络相关功能
├── cgroups/ # 资源限制实现
├── image/ # 镜像管理
├── volume/ # 数据卷管理
├── learning/ # 学习笔记和示例
└── docs/ # 文档