初识 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 更好用。

主页地址:http://www.docker.com/

GitHub Page: https://github.com/dotcloud/docker

传统虚拟机比如 VMWare,如果每个虚拟机需要 1GB 的空间,那么 1000 个虚拟机就需要 1000GB 的空间,而同样条件下,启动 1000 个 Docker 的镜像,或许只需要 1GB 多一点的空间。并且,传统虚拟机启动时间大大高于 Docker。

为何会这样呢?那不得不说下 AuFS 文件系统。该文件系统好比 git 一样,在一个基础镜像上的修改,可被差异化保存。所以,你可以建立无数个虚拟机,而共用同样一个基础镜像。所以类似于 “为何在 docker 镜像上部署软件比在一致生产环境上容易?” 这样的问题,便得到了最好的解答。


说那么多,怎么玩这个?

  1. 如果你在 Linux 上使用,首先确认你所用的发行版的内核是否支持 LXC。比如 CentOS7 使用完全支持 LXC 的 Linux kernel 3.10.0。而 kernel 在 2.6.27 版本就已经加入 LXC 了。

    1
    apt-get install docker.io
  2. 如果想在 MacOS 下使用,有两种方式。

    • 直接下载 Docker for OS X Installer。其中包含了 Docker、Boot2Docker、Boot2Docker manage tool、VirtualBox。
    • 使用命令行安装
1
2
3
4
5
6
7
$ sudo brew install cask
$ sudo brew update && sudo brew upgrade brew-cask && sudo brew cleanup && sudo brew cask cleanup
$ brew cask install virtualbox
$ brew install docker
$ brew install boot2docker
$ boot2docker init
$ boot2docker up

无论哪种方式,下载的文件大小都一样。推荐还是第一种,毕竟国内环境不好。

  1. 执行 docker run -i -t ubuntu /bin/bash,就可以创建一个 ubuntu 的镜像,并且进入交互模式了。

至于其他,下次有空再继续写吧 :)

作者

薯条

发布于

2014-07-15

更新于

2024-01-15

许可协议

评论