docker 是 dotCloud 發展出來的 LinuX Container 管理程式。
由於建議在 Linux Kernel 3.8 以上的版本跑,所以在 Ubuntu 12.04 LTS 上會需要 backport kernel,參考「ubuntu 12.04 kernel upgrade to 3.10」這篇的方法就可以了。
sudo apt-get install linux-image-generic-lts-raring
sudo apt-get install linux-headers-generic-lts-raring
裝完重開機後應該就可以看到新版 kernel:
$ uname -a
Linux GSLIN-DESKTOP 3.8.0-30-generic #44~precise1-Ubuntu SMP Fri Aug 23 18:32:41 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
接下來依照「使用 Docker/LXC 迅速启动一个桌面系统」這篇的方法,透過 ppa 安裝 docker。
sudo add-apt-repository ppa:dotcloud/lxc-docker
sudo apt-get update
sudo apt-get install software-properties-common lxc-docker
然後用標準的 ubuntu
系統,第一次跑需要抓檔案,但第二次跑就快很多了:
sudo docker run -i -t ubuntu /bin/bash
每次都是乾淨的環境,我第一次進去的時候 touch 一個檔案,第二次進去後就沒了:
gslin@GSLIN-DESKTOP [~] [04:52/W3] sudo docker run -i -t ubuntu /bin/bash
WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: [8.8.8.8 8.8.4.4]
root@679a4301aecc:/# ls -al /tmp
total 8
drwxrwxrwt 2 root root 4096 Apr 11 21:11 .
drwxr-xr-x 24 root root 4096 Sep 22 20:52 ..
root@679a4301aecc:/# touch /tmp/foo.txt
root@679a4301aecc:/# ls -al /tmp
total 8
drwxrwxrwt 2 root root 4096 Sep 22 20:52 .
drwxr-xr-x 25 root root 4096 Sep 22 20:52 ..
-rw-r--r-- 1 root root 0 Sep 22 20:52 foo.txt
root@679a4301aecc:/# exit
gslin@GSLIN-DESKTOP [~] [04:52/W3] sudo docker run -i -t ubuntu /bin/bash
WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: [8.8.8.8 8.8.4.4]
root@7ced1a7c82bb:/# ls -al /tmp
total 8
drwxrwxrwt 2 root root 4096 Apr 11 21:11 .
drwxr-xr-x 24 root root 4096 Sep 22 20:52 ..
root@7ced1a7c82bb:/# exit
另外可以參考「Docker: Git for deployment」這篇。
看起來是拿來測試的好工具... 準備拿來測 Puppet。