初识 LXC 和 Docker
随着 RHEL 7 开放下载, CentOS 7 也来到了大众的视线。
各大媒体都开始了报道,并且把支持 Linux 容器放在了及其显眼的特性位置上。但这货究竟是什么,我想和我一样对这个一头雾水的人应该也不少。正好今天有点时间来研究下。
Linux 容器 (LXC) 简介
LXC - Linux Containers
如果可以用一句话来说,那么 LXC 就是以 patch 内核的方式,提供了一系列 API,可以借由这些 API 创建、进入、管理容器,同时实现高效的资源共享以及隔离。
其官网 https://linuxcontainers.org/
目前已经在版本 1.0.5
具体可看 http://www.ibm.com/developerworks/cn/linux/l-lxc-containers/
Docker 简介
其实 Docker 才是我所关注的重点。毕竟直接用 LXC,是比较不太方便的。
同样也用一句话来说,笔者觉得 Docker 就是 LXC 的封装,让 LXC 更好用。
GitHub Page: https://github.com/dotcloud/docker
传统虚拟机比如 VMWare,如果每个虚拟机需要 1GB 的空间,那么 1000 个虚拟机就需要 1000GB 的空间,而同样条件下,启动 1000 个 Docker 的镜像,或许只需要 1GB 多一点的空间。并且,传统虚拟机启动时间大大高于 Docker。
为何会这样呢?那不得不说下 AuFS 文件系统。该文件系统好比 git 一样,在一个基础镜像上的修改,可被差异化保存。所以,你可以建立无数个虚拟机,而共用同样一个基础镜像。所以类似于 “为何在 docker 镜像上部署软件比在一致生产环境上容易?” 这样的问题,便得到了最好的解答。
说那么多,怎么玩这个?
如果你在 Linux 上使用,首先确认你所用的发行版的内核是否支持 LXC。比如 CentOS7 使用完全支持 LXC 的 Linux kernel 3.10.0。而 kernel 在 2.6.27 版本就已经加入 LXC 了。
1
apt-get install docker.io
如果想在 MacOS 下使用,有两种方式。
- 直接下载 Docker for OS X Installer。其中包含了 Docker、Boot2Docker、Boot2Docker manage tool、VirtualBox。
- 使用命令行安装
1 | $ sudo brew install cask |
无论哪种方式,下载的文件大小都一样。推荐还是第一种,毕竟国内环境不好。
- 执行
docker run -i -t ubuntu /bin/bash
,就可以创建一个 ubuntu 的镜像,并且进入交互模式了。
至于其他,下次有空再继续写吧 :)