【編者的話】隨着容器技術盛行,Oracle也開始在雲服務中應用容器技術,在準備應用的同時,Oracle也開發了相關工具便於構建和維護容器。如今能夠高興的宣佈,Oracle開發的這幾款工具已經開源,但願可以幫到你們。可在Oracle GitHub頁面上找到Smith、Crashcart和Railcar工具的相關資料。linux
傳統的容器構建過程須要一系列的複雜操做步驟。Smith就是一個解決構建一致性和安全性的問題的微容器構建工具。可方便的經過rpms、yum庫,甚至已有容器來構建微容器。更多構建微容器的信息可參考資料:the Microcontainer Manifesto。github
若生產環境應用容器的精簡配置,致使的診斷工具缺失,對運維來講是一個巨大挑戰。雖然大部分診斷可在主節點上完成,但有時也須要在容器節點可訪問的文件系統上進行診斷。Crashcart即是應用在這個場景下,它爲正在運行的容器加載一組數據用來定位故障緣由。瞭解crashcart是如何定位單邊加載數據故障的原理可參考資料:Hardcore Container Debugging。安全
Go語言對於容器runtime不必定是最佳選擇。(注:runtime是經過命名空間和cgroups完成隔離的組件。Go語言對於容器鏡像和CLIS仍然是一個很是明智的選擇。)爲便於理解,可閱讀博客: Linux Namespaces And Go Don't Mix。 Runc(runc是oci runtime的默認組件)的部分代碼是由C語言編寫,在Go運行時態啓動以前調用的。Go雖然是一個偉大的語言,但對於僅需輕量線程控制及大量系統調用的小型組件而言,還有更好的選擇。Rust語言則能夠提供相似C語言的輕量控制,可是內存安全且避免了類的BUG和漏洞。更多Railcar的開發信息可參考資料:Building a Container Runtime in Rust。網絡
原文連接:Three New Open Source Container Utilities(翻譯:Chilly)oracle