天天看點

CentOS 6.5 使用docker 容器

docker 是一個linux 上的LXC 容器項目,是很輕量級的虛拟化技術。

docker雖然基于lxc技術(cgroup、namespace等),但是思路完全和lxc不一樣。

lxc看起來更像是一個虛拟機,多用于作業系統級别的虛拟化,背後的哲學是 IAAS;

而docker看起來是一個程式,跑在沙箱裡的程式,屬于應用程式級别的虛拟化,背後的哲學是 PAAS。

RHEL 6.5 開始提供docker 支援,這裡我們使用新出爐的 CentOS 6.5 x64 進行實驗。

安裝docker

1

<code>yum </code><code>install</code> <code>docker-io --enablerepo=epel</code>

1、下載下傳官方制作的CentOS6.4鏡像

<code>docker pull centos</code>

輸出大緻如下

2

3

<code>Pulling repository centos</code>

<code>539c0211cd76: Downloading 67.96 MB</code><code>/98</code><code>.56 MB (69%)</code>

<code>539c0211cd76: Download complete</code>

下載下傳的鏡像位于/var/lib/docker/devicemapper/mnt/539c0211cd76*/rootfs/

2、檢視安裝好的虛拟機

4

<code># docker images</code>

<code>輸出如下</code>

<code>REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE</code>

<code>centos              6.4                 539c0211cd76        8 months ago        300.6 MB (virtual 300.6 MB)</code>

3、接下來我們在centos 6.4的環境下執行一個top指令,然後檢視輸出

5

6

7

8

9

10

11

12

13

14

15

16

17

<code># ID=$( docker run -d centos /usr/bin/top -b)</code>

<code># docker attach $ID</code>

<code>top</code> <code>- 23:30:50 up 47 min,  0 </code><code>users</code><code>,  load average: 0.14, 0.44, 0.53</code>

<code>Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie</code>

<code>Cpu(s):  4.6%us,  1.0%sy,  0.0%ni, 91.6%</code><code>id</code><code>,  2.8%wa,  0.0%hi,  0.0%si,  0.0%st</code>

<code>Mem:   7963636k total,  3795180k used,  4168456k </code><code>free</code><code>,   120628k buffers</code>

<code>Swap:  2097144k total,        0k used,  2097144k </code><code>free</code><code>,  1870656k cached</code>

<code>  </code><code>PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND    </code>

<code>    </code><code>1 root      20   0 14896 1180  984 R  0.0  0.0   0:00.03 </code><code>top</code>        

<code>top</code> <code>- 23:30:53 up 47 min,  0 </code><code>users</code><code>,  load average: 0.13, 0.43, 0.53</code>

<code>Cpu(s):  4.0%us,  0.9%sy,  0.0%ni, 93.7%</code><code>id</code><code>,  1.3%wa,  0.0%hi,  0.0%si,  0.0%st</code>

<code>Mem:   7963636k total,  3790700k used,  4172936k </code><code>free</code><code>,   120644k buffers</code>

<code>Swap:  2097144k total,        0k used,  2097144k </code><code>free</code><code>,  1866336k cached</code>

<code>    </code><code>1 root      20   0 14896 1180  984 R  0.0  0.0   0:00.03 </code><code>top</code>

4、殺死這個虛拟機

<code># docker stop $ID</code>

5、進入虛拟機的shell,幹你想幹的任何事情

<code># docker run -i -t centos /bin/bash</code>

6、官方的這個centos鏡像非常小,不到100M,如果需要配置一個複雜的環境,請直接yum解決。

docker 也提供了線上搜尋鏡像模闆功能,類似與puppet線上安裝模闆(步驟1)

<code># docker search ubuntu</code>

<code># docker search centos</code>

<code># docker search debian</code>

總結

docker 是一個年輕的容器項目,跟FreeBSD 的jail 相比,還不怎麼成熟,但是容器技術仍然代表着一個先進的虛拟化方向。

本文轉自 紫色葡萄 51CTO部落格,原文連結:http://blog.51cto.com/purplegrape/1340541,如需轉載請自行聯系原作者

繼續閱讀