docker并不是萬能的

大數(shù)據

作者:佯良

在連續(xù)兩年里為每一個項目都配備一個docker后,我變得越來越不喜歡使用docker了。

不過值得肯定的是,在寫完dockerfile和docker-composer之后,一行代碼直接部署的痛快感,真的會讓人身心愉悅。

但是,為了這一行代碼的部署,調試過程也是十分折磨人的。

docker表面上很方便,其實工具鏈之間的銜接十分糟糕。

docker將linux的namespace做了深層次的封裝,使用戶上手的難度非常低,部署到生產環(huán)境也很容易。但這僅限于小型項目,比如你的一個nodejs+mongodb或者php+mysql的架構方式。如果是稍微復雜一些的項目,依賴關系非常多的話,你會發(fā)現(xiàn),docker會出現(xiàn)各種神奇的bug。比如docker-compose之間的依賴不會等待被依賴者加載完畢,掛載volume有時會無法在entrypoint或command中執(zhí)行命令,必須要用COPY…諸如此類,原本不需要如此復雜的部署,如今卻變得復雜和難以維護。

在進行多機部署的時候,跟著官方文檔走都不能成功,上stackoverflow和github上查了半天也查不到任何解決辦法,是經常發(fā)生的事情。

當然用多了之后會習慣docker的不完美,但也會讓你思考,這個項目一定需要使用docker嗎?

docker的確降低了運維難度,但是加大了運營成本。

在我看來,docker最大的一個缺點是,十分吃硬盤。docker封裝的namespace,但是并沒有對文件進行進一步的管理,只是粗暴的將文件到處復制粘貼。當服務器上開了數(shù)百個容器后發(fā)現(xiàn)1TB的硬盤被吃掉了一半時,我的內心里只有兩個字:絕望。這意味著需要不停增加服務器資源才能維持系統(tǒng)的運行,如果不采用docker部署的方式,可能并不需要如此大的磁盤空間。

除了磁盤空間的占用外,作為一名中國用戶,時區(qū)、墻等都是問題,當然這些問題都是可以解決的,但是也很花費時間。

我并不是在指責docker的不好,正相反,我覺得docker是個非??岬墓ぞ摺J褂胐ocker后,在我更新半年前寫的爬蟲時,完全不用擔心該怎么從新部署,還是那條熟悉的命令即可完成,減輕了很多記憶上的壓力。

那么在什么時候不必使用docker呢

架構簡單,類似數(shù)據庫+應用程序這種情況是不需要docker的,因為你花在調試docker上的時間可能比你完成具體業(yè)務邏輯的時間還要多(想偷懶不想安裝各種庫時除外);業(yè)務上docker會占用太多資源的時候可以考慮不使用docker,因為服務器資源真的很貴;

啊,想來想去,不使用docker的場景真少啊,說到底我還是喜歡使用docker的,連多找?guī)讉€不用docker的理由都找不到(笑。

docker并不是萬能的,但如果你現(xiàn)在告訴我不要使用docker,我可能還做不到(docker是一個讓人用上就不想扔的產品,部署時的如絲般流暢還是夠吸引人?。?/p>

極客網企業(yè)會員

免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。

2017-11-14
docker并不是萬能的
作者:佯良 在連續(xù)兩年里為每一個項目都配備一個docker后,我變得越來越不喜歡使用docker了。 不過值得肯定的是,在寫完dockerfile和dock

長按掃碼 閱讀全文