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

简介: 本文讲的是5个建议遵循的Docker最佳实践【编者的话】本文介绍了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最佳实践

相关文章
|
1月前
|
SQL 数据库 Docker
OBCP实践 - OceanBase Docker 体验
开发者和技术爱好者可以在无需复杂安装配置的情况下迅速搭建OceanBase数据库环境,从而方便地进行功能测试、性能评估或者开发调试等实践活动。同时,由于Docker的便捷性,此方法也支持跨平台部署,使得OceanBase数据库能够在不同的操作系统(如Linux、Windows、macOS)上轻松体验。
79 2
|
2月前
|
运维 云计算 Docker
深入理解与实践:基于Docker的微服务架构优化策略
本文旨在为软件开发和运维人员提供一个全面的指南,探讨如何通过Docker容器技术优化微服务架构。我们不仅深入分析了Docker在微服务环境中的关键作用,还提出了一系列实践策略,以提高部署效率、增强系统稳定性,并确保服务的可伸缩性和安全性。通过具体案例分析和比较传统部署方式的局限性,本文展示了Docker如何成为微服务架构优化不可或缺的工具,旨在帮助读者构建一个更加灵活、高效和可靠的服务环境。
149 1
|
4月前
|
网络协议 jenkins 调度
Docker【部署 06】Swarm实践及Operation not permitted和No chain/target/match by that name问题处理
Docker【部署 06】Swarm实践及Operation not permitted和No chain/target/match by that name问题处理
128 0
Docker【部署 06】Swarm实践及Operation not permitted和No chain/target/match by that name问题处理
|
4月前
|
Linux API Docker
Docker下部署微服务实践踩坑总结
Docker下部署微服务实践踩坑总结
84 0
|
26天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的最佳实践
在现代云计算环境中,自动化运维成为保障系统稳定性与提升效率的关键。本文深入探讨了如何利用Docker容器化技术和Kubernetes容器编排工具构建一个高效、可靠的自动化运维体系。文中不仅介绍了相关的技术原理,还结合具体案例分析了实施过程中的常见问题及解决方案,为读者提供了一套行之有效的最佳实践指南。
|
1月前
|
Kubernetes Go 开发者
Go语言与Docker容器结合的实践应用与案例分析
【2月更文挑战第23天】本文通过分析实际案例,探讨了Go语言与Docker容器技术结合的实践应用。通过详细阐述Go语言在容器化环境中的开发优势,以及Docker容器技术在Go应用部署中的重要作用,本文旨在为读者提供Go语言与Docker容器结合的具体实现方法和实际应用场景。
|
1月前
|
Kubernetes 云计算 开发者
云计算中的容器化技术:Docker与Kubernetes的实践
云计算中的容器化技术:Docker与Kubernetes的实践
99 0
|
2月前
|
安全 Linux Docker
制作 Python Docker 镜像的最佳实践
制作 Python Docker 镜像的最佳实践
|
3月前
|
Java Docker Windows
Windows下部署SpringBoot的实践方案(Docker & Docker Desktop)
Windows下部署SpringBoot的实践方案(Docker & Docker Desktop)
71 0
|
4月前
|
运维 Cloud Native Linux
【云原生|Docker系列第4篇】Docker的容器的入门实践
【云原生|Docker系列第4篇】Docker的容器的入门实践