这些Docker做不到或做不好的事,你知道几件?
Docker是一个很棒的工具。但是Docker容器并不是包治百病的方法。如果你真的想用好Docker,先必须了解其短处在哪里。
Docker容器在过去几年中已经大受欢迎,因为它们启动速度更快,扩展容易,并且比虚拟机消耗更少的资源。
但这并不意味着Docker容器是对每种类型的工作负载都是完美的解决方案。以下是Docker无法做到或做不好的事:
——像裸机服务器一样快地运行应用程序。Docker容器的开销比虚拟机少。但不是零开销。让应用程序获得真正的裸机速度的唯一方法是直接在裸机服务器上运行,不使用容器或虚拟机。
——提供跨平台的兼容性。在Windows上运行的Docker容器中的应用程序无法在Linux上运行,反之亦然。虚拟机则不受此限制。在由Windows和Linux服务器组成的高度异构环境中,这使得Docker的吸引力降低。
——用图形界面运行应用程序。Docker被设计为托管在命令行上运行的应用的解决方案。你可以使用一些技巧(如X11转发)以在Docker容器内运行图形界面,但这些方法比较笨拙。你也可以运行一个更容易做到的Web界面,但是你必须运行Web服务器,并且界面选项将仍然受到限制。实际上,Docker对于需要丰富界面的应用程序来说不是一个很好的解决方案。
——解决所有安全问题。Docker可以通过将应用程序与主机系统和其他容器隔离来在某些方面提高安全性。容器还可以轻松将应用程序分解成小部件,即使一个部件受到威胁,其余部分不一定会受到影响。然而Docker创造了新的安全挑战,例如在动态的大型Docker环境中监控这么多移动片段的难度会很大。在将工作负载迁移到Docker之前,你需要评估Docker特定的安全风险,并确保可以处理它们。
就像云计算一样,Docker是一个改变游戏规则的因素。在许多情况下,容器提供了比旧式应用程序部署技术更大的优势。
但是,正如云不适合每一种情况一样,Docker也无法满足你的所有需求。
编译:Jonathan Zhang
作者:Christopher Tozzi
来源:http://thevarguy.com/open-source/when-not-use-docker-understanding-limitations-containers
阅读推荐:
投稿邮箱:openstackcn@sina.cn