【编者的话】随着容器技术盛行,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