自己写一个容器
见: https://github.com/jiajunhuang/cup
容器技术并不是什么新技术,Docker能如此风行估计是让容器技术降低了使用难度。大概说一下这个demo用到的技术:
- namespace,通过使用Linux下的namespace来对进程进行隔离(挂载信息,pid,用户,网络等)
- chroot,通过chroot来限制进程的rootfs
- reexec,通过这个来模拟fork,见这篇文章
而资源限制则可以通过cgroups来配置.
参考:
- http://man7.org/linux/man-pages/man7/namespaces.7.html
- http://man7.org/linux/man-pages/man7/cgroup_namespaces.7.html
- http://man7.org/linux/man-pages/man7/network_namespaces.7.html
- http://man7.org/linux/man-pages/man7/pid_namespaces.7.html
- http://man7.org/linux/man-pages/man7/user_namespaces.7.html
更多文章
本站热门
- socks5 协议详解
- zerotier简明教程
- 搞定面试中的系统设计题
- frp 源码阅读与分析(一):流程和概念
- 用peewee代替SQLAlchemy
- Golang(Go语言)中实现典型的fork调用
- DNSCrypt简明教程
- 一个Gunicorn worker数量引发的血案
- Golang validator使用教程
- Docker组件介绍(二):shim, docker-init和docker-proxy
- Docker组件介绍(一):runc和containerd
- 使用Go语言实现一个异步任务框架
- 协程(coroutine)简介 - 什么是协程?
- SQLAlchemy简明教程
- Go Module 简明教程