發表文章

目前顯示的是 11月, 2015的文章

docker 介紹 (3-2): docker on OpenStack

圖片
在OpenStack kilo版本中, 提出了Magnum的支援, 不同於前述的Heat和Nova嘗試在既有的架構下結合docker的方式, Magnum是一個通用的容器管理解決方案,  支援Kubernetes和Docker, Magnum為了結合既有的OpenStack支援, 以及docker特有的叢集(Swarm)部屬方式, 而擁有以下的特點[4]: Magnum在任何需要管理容器的地方, 使用其他的OpenStack元件, 例如: Nova, Heat, Neutron, Glance和Keystone Nova用於創建輕量的虛擬機(micro VM), docker容器在虛擬機中運行 Heat用於整體資源調度, 對於docker, Heat則會創建docker Swarm叢集以及Swarm Agent Magnum創建bay-model(叢集模型), bay(叢集)以及容器的創建

docker 介紹 (3-1): docker on OpenStack

圖片
嚴格上來說, docker和OpenStack是兩種不同的服務, OpenStack提供的是虛擬機(Virtual Machine)的調度與管理, docker提供的是容器(Container)的封裝與隔離機制, 然而, 對於一般使用者而言, 兩者皆提供一種獨立的, 可擴充的運算資源, 因此, 也有許多比較文章[7], 嘗試比較docker和OpenStack適用的範圍. 事實上, OpenStack也開始思考如何結合docker的運算架構, 提供容器作為一種服務(Containers-as-a-Service) [1, 2], 在OpenStack中, 有三種不同的方法和docker結合: Nova中的Docker driver [1], heat中的Docker driver以及Kilo版中推出的Magnum Project [2]. 主要的差異在於容器開啟的位置是實體機(physical machine)還是虛擬機.

docker 介紹 (2): docker和虛擬化技術

圖片
在這一篇文章中, 將介紹一些docker所使用的技術, 相同的, 由於docker的相關技術已經被討論許多, 也有取多trace code, 在文章中, 只大略提及個技術的重點與限制, 並列出相關文件於參考資料作為延伸的閱讀. docker是藉由Linux Containers (LXC)技術作為基礎, LXC包括兩個部分: Linux Namespace (chroot)以及Linux CGgroup, chroot提供了一種簡單的隔離模式: chroot內部的檔案系統無法訪問外部的內容 Linux Namespace在此基礎上, 提供了對UTS (UNIX Time-sharing System), IPC (interprocess communication), mount (檔案系統), PID (處理程序), network, User等的隔離機制. 簡單來說, LXC藉由遮蔽PID, 提供分離的操作環境, 因此, docker的每個容器都有獨立的檔案系統, 處理程序ID, 以及多工架構,

docker 介紹 (1): docker介紹

圖片
在這一系列文章中, 將介紹docker這一種虛擬化技術, docker作為一種作業系統層虛擬化技術, 在網路上已經有大量的討論, 因此, 在文章中, 只簡短的總結一下個主題的結論, 並且附上連結作為進一步了解的參考. 在進入細部介紹之前, 我們先介紹docker [1]: Docker is an open platform for building , shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications. 在官方的介紹中, 說明了docker的三種功能:  building ,  shipping  和  running 其中, building是建立docker的環境, shipping則是docker容器(container)的搬移, running則是docker容器的執行.