![Docker:使用两个小容器还是一个大容器更好](https://linux22.com/image/1431465/Docker%EF%BC%9A%E4%BD%BF%E7%94%A8%E4%B8%A4%E4%B8%AA%E5%B0%8F%E5%AE%B9%E5%99%A8%E8%BF%98%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A4%A7%E5%AE%B9%E5%99%A8%E6%9B%B4%E5%A5%BD.png)
我正在考虑将 Docker 作为我的下一个项目的架构。
我想运行一个 DNS 服务器和一个 Web 服务器。
把它们都放在同一个容器里是不是更好?还是我应该创建两个?
它们是否需要保持装载状态,或者这些集装箱在没有活动时是否处于休眠状态。
谢谢大家的帮助!
答案1
Docker 的理念是将您的功能隔离到离散的容器中,除非它们相互依赖。
例如,您可能在同一个容器中运行 dovecot 和 postfix,因为它们相互依赖。如果它们共享一个公共文件系统,它们也可能被拆分。
Apache 和 Bind 并不相互依赖,因此可以拆分到容器中。
在另一种虚拟化技术(例如 VMWare)中,会有可衡量的开销,并且结合功能的动机可能会更大。
Docker 的好处是开销极小,而且能够切换和/或重新使用技术所带来的额外好处超过了开销成本。
回答:创建两个镜像,两个容器。如果 Apache 不是解决方案,那么您可以将 Web 服务交换到 NGINX,而无需触及 DNS。或者在另一个容器中添加 MYSQL,并使 DNS 和 APACHE 不受影响。