Show HN: I built an OCI container runtime in Python(for fun)
2 months ago
- #docker
- #python
- #container-runtime
- Puncker-rt是一个教育用途、符合OCI标准的纯Python容器运行时
- 它替代Docker栈中的runc来演示容器内部原理
- 通过ctypes库调用Linux系统调用(unshare/mount/pivot_root/execve)
- 实现OCI运行时规范,作为JSON配置与Linux内核之间的转换层
- 核心技术包括命名空间、文件系统切换(pivot_root)、能力机制和Cgroups V2
- 要求Linux内核5.x+、Python 3.13+及Docker管理环境
- 安装方式:克隆仓库后通过pip安装二进制文件
- Docker集成需编辑/etc/docker/daemon.json并重启服务
- 支持通过Docker CLI的--runtime=puncker参数运行容器
- 代码结构清晰,包含main.py/constants.py/errors.py等模块
- 特性涵盖文件系统隔离、Proc/Sysfs/Tmpfs挂载、Docker集成
- 当前局限:不支持TTY、缺少Seccomp和Cgroups v1支持
- 采用MIT许可证,欢迎通过PR提交贡献