容器的发展历史
Docker 是什么
Docker 是Docker.Inc 公司开源的⼀一个基于Linux Kernel Namespace/CGroups技术之上构建的 Container容器引擎, 源代码托管在GitHub 上, 基于Go语⾔言开发并遵从Apache2.0协议开源。
对比虚拟机
Docker 的引擎
Libcontainer提供了本机Go实现,用于创建具有名称空间,cgroup,功能和文件系统访问控制的容器。
它使您可以管理创建容器后执行其他操作的容器的生命周期。
Linux Containers
CGroups 限制资源
-
Cpu
-
Memory
-
Blkio
-
Freezer
Namespaces 隔离环境
MNT、PID、NET、IPC、USER、UTS
如何启动的
export GOPATH=$GOPATH:/your/path/to/libcontainer/vendor
cd libcontainer/nsinit && go get && make
mkdir /busybox
curl -sSL 'https://github.com/jpetazzo/docker-busybox/raw/buildroot-
2014.11/rootfs.tar' | tar -xC /busybox
cp libcontainer/sample_configs/minimal.json /busybox/container.json
cd /busybox
nsinit exec --tty --config container.json /bin/bash
参考资料
《肖德时-深入浅出Docker》