讓Docker如虎添翼的12款開源工具
譯文【51CTO.com快譯】如今,Docker領域的發(fā)展日新月異。作為一種炙手可熱的工具,Kubernetes可能更備受關注,但Docker繼續(xù)為大多數開發(fā)項目和部署提供“正好夠用”的容器編排機制。
此外,Docker有自己豐富的生態(tài)系統(tǒng),其中的第三方工具可以擴展Docker,增強功能,或者更易于使用。本文介紹的這12個開源工具得益于Docker或者有助于Docker,將Docker用于特定的使用場景,或者使Docker更易于使用。
Dive
Docker映像如同三明治,有好多層。更貼切地說,它們像不透明包裝紙中的三明治:你并不總是知道有幾層,或者里面有什么。Dive讓你可以通過交互式UI,直觀地查看Docker映像中的層。你可以看到每一層中有什么內容,還可以查明每一層如何改變下面的那一層(什么被添加或刪除)。你還可以分析映像是否有浪費或重復的空間,甚至將結果傳遞給持續(xù)集成管道,那樣浪費太多空間的映像無法通過構建過程。
Docker Compose UI
Docker Compose UI是一個采用MIT許可證的項目,為Docker Compose提供了基于Web的UI,它是使用Python的Flask框架構建的。容器可以在本地運行或在遠程主機上運行,Docker Compose UI本身在Docker容器中就有,以方便使用。請注意:“由于已公布的端口沖突,”Docker Compose UI隨附的一些演示項目無法擴展。
Dockly
大多數Docker工作是通過CLI或終端界面執(zhí)行的,默認的Docker CLI看起來與其他任何CLI程序非常相似。Dockly為Docker提供了全屏終端界面:顯示所有運行中容器的文本模式儀表板、容器日志和利用率統(tǒng)計信息的實時視圖以及內置的shell選項卡。
Dusty
Dusty是一種基于Docker、采用MIT許可證的開發(fā)環(huán)境,旨在改進使用Docker Compose或Vagrant以管理容器。比如說,Dusty的開發(fā)人員聲稱,Dusty擁有比Docker Compose更簡單的規(guī)范模型,它比Vagrant更好地處理這項任務:基于版本對應用程序依賴項和服務更新進行隔離。Dusty還允許創(chuàng)建測試、作為環(huán)境規(guī)范的一部分,并且使常見的多步驟過程成為易于調用的腳本。
Elsy
Elsy被稱為是“一種自成一體的多語言構建工具”,使用Docker和Docker Compose。 Elsy可以跨環(huán)境一致地構建軟件存儲庫,盡量減少執(zhí)行構建所需要的工具,無論使用哪種語言。一項大力宣傳的功能blackbox-test讓任何構建的容器能夠以體現(xiàn)實際生產環(huán)境使用的方式加以測試。比如說,任何需要數據庫的服務都會構建相應的數據庫容器,之后Elsy會自動拆除測試環(huán)境。
Gockerize
這個工具面向Go語言的愛好者。Gockerize是采用BSD許可證的工具,用于構建靜態(tài)Go二進制代碼,并將它們打包成極簡的Go容器。Gockerize由開發(fā)AeroFS的人員創(chuàng)建,包括諸多功能,比如“能夠自動對Golang標準庫打上一套補丁;雖然這項功能很少需要,但能幫上大忙”,據介紹該項目的博文稱。Gockerize并不過于依賴外部,只依賴Go、Docker 1.5或更高版本以及Bash shell。
Habitus
Habitus是另一個基于Docker的構建工具,使用Dockerfile和build.yml文件來創(chuàng)建含有眾多任意命令的多步驟容器構建。構建過程的每個步驟都可以做到依賴前面的某個步驟,以確保任何棘手的多步驟依賴項都能正常運行。Habitus還支持在構建過程中加入秘密內容,而且不會在映像中留下痕跡。
Hyper
Hyper號稱是“與虛擬機管理程序無關的工具,讓你可以在任何虛擬機管理程序上運行Docker映像”,它使用Docker、QEMU和Xen來實現(xiàn)目標。這款工具的開發(fā)者聲稱,Hyper使用極少的資源(28MB),以容器而非虛擬機的速度啟動,提供高性能,為應用程序提供通過硬件執(zhí)行的隔離機制。Hyper的一個預定使用場景是創(chuàng)建基于Docker的多租戶應用程序。
Kitematic
有時你只想要一個GUI。Kitematic為你提供了在MacOS、Ubuntu Linux和Windows上管理Docker容器的GUI。Kitematic的其他便利包括通過文件系統(tǒng)自動公開容器卷數據,為Docker提供內置CLI,并自動同步其狀態(tài)以匹配Docker的更改(比如添加新的容器映像時)。
Logspout
Unix界有著將多個小程序結合起來解決大問題的悠久傳統(tǒng)。Logspout運用同樣的理念來管理來自Docker容器的日志。Logspout將來自某個特定主機上所有容器的所有日志(主要是stdout和stderr)輸出到你認為***的任何目標。只需讀取HTTP數據流,就可以實時查看生成的聚合日志。
Portainer
連相對簡單的Docker架構也可能有許多不定因素:容器、映像、網絡、卷和秘密內容。在頭腦中跟蹤這一切可不是辦法。Portainer為Docker環(huán)境提供了一個Web UI,無論環(huán)境是單個主機還是集群,讓你可以借助單一管理平臺查看運行的一切。只需點擊幾下鼠標,即可管理和查看所有常見的Docker組件。最棒的是,整個系統(tǒng)作為單個容器部署在你現(xiàn)有的Docker基礎架構中。
Whalebrew
MacOS用戶應該熟悉Homebrew,這是面向MacOS的臨時包管理系統(tǒng)。Whalebrew讓你可以安裝Docker映像,并通過別名直接從命令行來運行,好像它們是本地安裝的可執(zhí)行文件。安裝包就跟輸入whalebrew install 一樣簡單。通過Whalebrew的存儲庫精選管理的包運行起來***,但理論上任何接納CLI命令的Docker映像都應該可以運行。
原文標題:12 open-source tools that make Docker better,作者:Serdar Yegulalp
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】