docker lxc
FaceBook Proxmox VE 伺服器虛擬化管理平台 使用者社團
楊金龍
剛剛看到這一頁,有各種虛擬技術的比較表,很值得一看
https://openvz.org/Comparison
pve 4 之前的版本都是使用openVZ的技術,現在轉換到 LXC 的技術了,一起來觀注一下openVZ現在的發展如何了。
另外比較值得深思的是那一頁的第一段文字,寫到它沒有把 Docker放進來比較的原因是,它不認為 Docker 是個虛擬化解決方案(virtualization solution) ,它認為Docker只是一個…中文不太好翻,大意是應用程式自動佈署的容器 (原文:It automates the deployment of applications inside software containers)
看到這邊我有恍然大悟的感覺,難怪我之前用Docker時怎麼用都不順手,因為Docker它不是給系統管理員所使用的面向,它是給應用程式開發人員所使用的面向,方便那些開發人員快速開發和佈署他們的應用程式。
系統管理員,管的是整台機器系統的安全性,思考的基點都是從一台台機器(不管是vm或實體機)來規劃與管理的,硬要把Docker的使用概念套進來,我始終覺得卡卡的、用不了。
所以,之前 向聖夫 (Chris Hsiang) 提到 LXC 的使用概念,要象 Docker 一樣,「一個服務、一個 Container」 我有看到這是 Docker 針對它的產品所提出來的概念。
我想這概念不一定適用LXC,上面那一頁我想說明了應有不少人有同樣的看法。
所以,使用LXC時,真有必要象Docker那樣,一個服務、一個container呢? 這涉及整體規劃,若你有空弄的話,就試試看,再跟我們說這樣管理上會有比較方便嗎?
若沒有時間弄的話,按系統管理員的思考基點去用LXC也不錯,能管好機器就好,不要被使用者客訴就好。
=====
Ray Tracy 身為一個 30 年經驗的 Sysadmin, 安裝任何系統都是勝任愉快, 要我裝 100 遍也不厭倦; Docker 不能讓我隨心所欲的快速調整, 除非我自己下來做 Image, 但卻很難根據不同場合去微調, 或者是臨時因應緊急狀況去應變, 總要花很多時間重建 Image, 對我來說, Docker 的效益並不高….
但是做 Software development 的人, 卻極為厭惡裝系統這件事情, 因為他們的專長不在系統面, 所以總是搞不定這些安裝流程, 還可以同樣裝 10 次, 卻產生 10 種不一樣的系統, 更別說叫它們裝好 100 個相同的系統環境了, 對他們而言, Docker 當然是一個救星…..
如果你只是要「很快速的產生一個跟上次一模一樣的系統」, Docker 確實做得很好; 但是如果你要「在不同環境下把一個系統調校得非常完美」, 用 Docker 會累死你….
=====
雅竹題 最近我為了要自已加一個功能,每次Docker開起來都能自動運作時我才發現Docker真的累死我!因為我從頭到尾去k一個image怎麼弄,Dockerfile怎麼寫,script怎麼寫自動化….我都快哭了!
=====
向聖夫 LXC 還是輕量級服務. 所以還是一個服務一個 LXC… 但是重點要形成一個 cluster of service… 這個就是慢慢有 LXD 可以大量透過 restful api 來控管
.
Docker vs LXC 最大的差異是, 假設 Docker 裡面有一個 nginx 2.3 但是現在有 ngnix 2.4 出來了, 然後是一個重要的 security fix 時, 你無法更新 Docker 裡面的套件. 你必須要整個 docker image 重新下載. 只為了一個小 patch. 但是 Docker Image 是最能維持 開發者 所假設的 “環境狀態”. 但是 如果是 在 Centos 下面建立的 Docker, 在 Unbuntu 下面運行時, 會有奇怪的問題 (這點很討厭)
.
LXC 它有預設好的 lxc template 服務 (如 ldap+samba+mariadb) 等等. 當你有新版時, 你可以在 LXC 下面手動更新任何一個套件. 但是它還是不適合一個incident 跑多服務. 當你要大量 deploy 跟控管時, 它就無 docker 那樣可以迅速快速複製控管, 或是 LXD 那樣子 可以透過 controller 去操作.
.
docker, lxc, lxd 全部都要學, 它們各自有其運用的地方. 同時它們前面有時都需有個 proxy 或是 load balancer
===========================
同程旅游5000个Docker实例上的CI实践