United Stack的Denny Zhang同窗剛寫了篇Docker的介紹文章。
mongodb
http://www.unitedstack.com/blog/episode-1-what-is-docker/
docker
順便試了一下,簡單說一下安裝的步驟吧。以Redhat RHEL爲例。ubuntu
http://docs.docker.io/en/latest/installation/rhel/
bash
$ sudo yum -y install docker-io $ sudo service docker start $ sudo chkconfig docker on $ sudo docker run -i -t ubuntu /bin/bash
Docker會自動去下載Ubuntu for Docker的p_w_picpaths。而後自動進入VM,其實這不是虛擬機,只是一個隔離出來的環境。Docker就是它的container。tcp
[root@localhost mongo]# docker run -i -t ubuntu /bin/bash root@bf6e7b27c8fe:/#
你會發現它其實很簡單,甚至連ifconfig命令都沒有,但'ip a'仍是能查它的ip地址的。ide
root@bf6e7b27c8fe:/# ip a 55: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether ca:f2:56:e9:d4:6e brd ff:ff:ff:ff:ff:ff inet 172.17.0.13/16 brd 172.17.255.255 scope global eth0 inet6 fe80::c8f2:56ff:fee9:d46e/64 scope link valid_lft forever preferred_lft forever 57: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever
[root@localhost zzhan17]# iptables-save|grep docker0 -A FORWARD -i docker0 -o docker0 -j ACCEPT -A FORWARD -i docker0 ! -o docker0 -j ACCEPT -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Docker主頁上還給出了一個如何build MongoDB的p_w_picpath的例子。這個也很快能試成功,注意在Host機器上須要先yum install -y mongodb。
oop
http://docs.docker.io/en/latest/examples/mongodb/
ui
它的原理就是在iptables里加了一條DNAT,把目標端口爲49153的訪問變成訪問虛擬機的27017。orm
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 49153 -j DNAT --to-destination 172.17.0.11:27017
blog
Docker的最大優點在於快和輕量,而Heat支持的Cloudformation是Cluster級別的,你能夠在Heat template中指定啓動多少個虛擬機,什麼狀況下啓動(好比CPU利用率大於50%)。而Docker仍是定位在單節點上的虛擬化。
最新的OpenStack Havana已經支持了Docker,若是用Heat+Docker, 卻是可能產生奇妙的效果。總之對用戶來講是個不錯的新選擇。