5个建议遵循的Docker最佳实践

本文讲的是5个建议遵循的Docker最佳实践【编者的话】本文介绍了5个Docker在实际应用场景下的最佳实践,能够帮助我们构建安全可靠的应用。

Docker不是唯一的容器技术,但是它是事实上的容器标准,对于容器应用及开发者来说,Docker是独一无二的。对Docker的支持已经被集成到各种各样的产品和平台中,并且许多组织已经使用Docker容器或者试图理解如何跟上潮流。

使用Docker并不是一件非常困难的事情,但是如果遵循一些最佳实践,将会用起来更加高效。下面是五个Docker最佳实践,你应该记住,无论你已经使用Docker,还是只是考虑将来使用。

1. 注意继承和依赖

容器继承父级镜像,通常包括其基本操作系统和依赖关系,例如依赖包,默认用户等。那些继承的属性和依赖可能会使您的容器暴露不必要的风险。确保您知道继承的属性,并采取其他的一些必要措施进一步隔离和保护您的容器。

2. 限制容器交互

容器安全对于很多组织来说已经成为一个严重关切的问题,特别是容器之间的交互以及容器与外界交互的安全问题。容器不应该接受来自任何网卡上暴露在外的端口的访问。您应该采取措施来控制容器在内部的互相交互,并限制与外部连接的容器数量,以便最大限度地减少外部带来的风险。

3. 监视容器的漏洞

使用像Docker Hub这样的代码仓库的一个挑战是,一旦容器镜像被上传到仓库,没有人为它的安全负责。它最初创建时可能很好,但随着时间的推移,发现了新的漏洞和缺陷,您需要在生产中使用容器之前扫描这些漏洞和缺陷。像 Twistlock 这样的工具可以帮助您监视和识别容器镜像中的漏洞。

4. 尽可能以只读方式运行容器

限制容器暴露风险的最好和最简单的方法之一是以只读模式运行它们。这显然不适用于所有容器,为了使得应用程序正常工作,必须有一些容器接受某种顺序的访问请求,这些容器可以以只读模式运行。还有一条原则是,永远不要在特权模式下运行容器。

5. 保持简洁

尽可能地使您的Docker容器组成的系统简化。您应该在单独的容器中运行进程。

如果有服务彼此依赖,则应使用容器链接功能来连接两个容器,而不是将它们组合在同一个Docker容器中。您还应该专注于保持容器加载的资源足够小,不要加载不必要的包或服务,并确保您的容器设计易于更换,那些不必要的资源只会使文件更大,浪费资源。容器组成的系统往往非常不稳定,容器应该很容易地被按需创建和删除。

以上所列并未涵盖所有的准则,说句实话,我可以写25个,甚至50个Docker最佳实践。这只是一个伟大的开始,以帮助您最大限度地提升Docker容器的价值,同时帮助您采取一些措施,以确保您的容器化应用程序和数据是安全的。

作者简介

Tony Bradley是Tenable网络安全的社区经理和TechSpective的总编辑。 Tony对技术和小工具充满热情,专注于微软技术和安全。他也喜欢花时间与他的家人一起,他喜欢阅读和高尔夫球,即使时间紧张也从未放弃。

原文链接: 5 Docker Best Practices You Should Follow (翻译:付辉)

原文发布时间为:2017-03-02

本文作者:付辉

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:5个建议遵循的Docker最佳实践

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/225172

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。