Docker試用感受

United Stack的Denny Zhang同學剛寫了篇Docker的介紹文章。

http://www.unitedstack.com/blog/episode-1-what-is-docker/


順便試了一下,簡單說一下安裝的步驟吧。以Redhat RHEL爲例。

http://docs.docker.io/en/latest/installation/rhel/

$ 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。

[root@localhost mongo]# docker run -i -t ubuntu /bin/bash
root@bf6e7b27c8fe:/#


你會發現它其實很簡單,甚至連ifconfig命令都沒有,但'ip a'還是能查它的ip地址的。

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。

http://docs.docker.io/en/latest/examples/mongodb/


它的原理就是在iptables里加了一條DNAT,把目標端口爲49153的訪問變成訪問虛擬機的27017。

-A DOCKER ! -i docker0 -p tcp -m tcp --dport 49153 -j DNAT --to-destination 172.17.0.11:27017


Docker的最大優勢在於快和輕量,而Heat支持的Cloudformation是Cluster級別的,你可以在Heat template中指定啓動多少個虛擬機,什麼情況下啓動(比如CPU利用率大於50%)。而Docker還是定位在單節點上的虛擬化。


最新的OpenStack Havana已經支持了Docker,如果用Heat+Docker, 倒是可能產生奇妙的效果。總之對用戶來說是個不錯的新選擇。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章