虚拟专用服务器(VPS)的成本很低。你可以每月大约5美元租用一个小服务器。(这里有一些便宜的VPS提供商)
您将获得可预测的定价,强大的计算能力,并且借助 Docker,在单个服务器上运行多个应用程序变得非常容易。
但是使用 Docker 在一台机器上运行多个应用程序安全吗?一台服务器可以容纳多少个应用程序?需要注意些什么?
目录Docker 容器彼此之间以及与主机系统几乎都是隔离运行的。如果你遵循一些基本的安全最佳实践,可以在单个主机上安全地运行多个应用程序。
说归说,这比每个应用都运行在独立主机上风险更大。停机和安全漏洞可能会影响多个应用及其数据。
我遇到的主要问题是单个容器需要所有CPU和内存,导致其他所有应用程序都受到了影响。
这一切都归结于潜在故障的影响。你可能不需要为新闻聚合器或业余项目提供99.999%的正常运行时间。而且如果你不存储重要数据,数据丢失也不会造成太大损害。
这个设置适用于:
或者简单地说:任何不需要企业级稳定性和安全性的内容。
你可以在一个服务器上部署多少个应用?显然,这取决于你的应用程序。
大致如下:
我已经在一个配备2GB内存、2个共享vCPU和40GB磁盘的VPS上运行了大约15个不同的应用(包括小型网站、API和数据库)好几个月了,没有遇到任何问题。
这是我的主机提供的最小规格的机器之一,但说句公道话,这些应用非常轻量级,几乎没有流量,因此几乎不需要任何资源。
你可以在一台服务器上运行数十个这样的小型应用程序。另一方面,如果某个应用流量增加,它也可能使你的机器过载。
没有数据就很难估算资源消耗,但也许一些简单的常识对你有帮助:
在最基本的设置中,你只需要访问一个VPS,安装Docker,就可以开始了!
在单个服务器上运行多个 Docker 应用程序一旦细化了细节就会变得稍微复杂一些。这里有一些我遇到的挑战:
如果你对学习DevOps感兴趣,我鼓励你亲自投身其中,自己完成它。没有什么比实际行动更能提升你的技能了。
如果你想省去一些麻烦,有一些工具可以让你的工作变得更轻松。
简化在同一台机器上运行多个应用程序的工具Sliplane 是一个完全托管的容器托管解决方案,允许你在单个服务器上部署多个应用程序。如果你不想过多地处理 DevOps 事宜,这是最快和最简单的方式。与其它提供商相比,它提供了更多高级功能,包括域名、垂直扩展、SSL、安全更新等。(声明:我是该项目的联合创始人)
Dokku 是一个开源的 PaaS 替代方案。它帮助你设置部署流水线,并提供构建和管理多个应用程序的工具。它还利用 Heroku 构建包来自动检测你的堆栈并在没有 Dockerfile 的情况下进行部署。
Portainer 也是一个开源的容器管理平台。与 Sliplane 和 Dokku 相比,Portainer 不处理构建过程,但提供了管理更高级集群设置的功能。
Sliplane | Dokku | Portainer | |
---|---|---|---|
管理多个容器 | ✅ | ✅ | ✅ |
处理构建过程 | ✅ | ✅ | ❌ |
使用 "git push" 实现持续部署 | ✅ | ✅ | ❌ |
专用构建服务器 | ✅ | ❌ | ❌ |
管理多个主机 | ✅ | ❌ | ✅ |
开源版本? | ❌ | ✅ | ✅ |
用户界面 | 网页界面 | CLI | 网页界面 |
查看容器日志 | ✅ | ❌ | ✅ |
查看服务器指标 | ✅ | ❌ | ✅ |
域名管理 | ✅ | ❌ | ❌ |
管理集群(Kubernetes, Docker Swarm) | ❌ | ❌ | ✅ |
扩展服务器 | ✅ | ❌ | ❌ |
自动备份 | ✅ | ❌ | ❌ |
自动安全更新 | ✅ | ❌ | ❌ |
Docker 允许在单个服务器上托管多个应用程序,使其成为部署小型项目的经济高效的解决方案。
通常使用 Docker 在单个服务器上运行多个应用程序是安全的,但应将其限制为低流量、低风险的应用程序。
根据你运行的应用类型,你可以在一台服务器上运行数十个项目。
如果你想要深入了解 DevOps,你可以选择自托管这条路。否则,你可以使用 Sliplane、Dokku 和 Portainer 这样的工具来简化流程。
作为一项完全托管的解决方案,Sliplane 是最快和最简单的方式。
Dokku 是一个开源项目。它的重点在于通过简单的 "git push" 操作来简化部署过程。用户界面是命令行界面(CLI)。
Portainer 也提供了开源版本。与 Sliplane 和 Dokku 相比,它缺少部署管道。它自带一个基于 web 的 UI,并提供了一些管理更高级集群设置的功能。