gpt4 book ai didi

docker - 了解生产中的 Docker

转载 作者:行者123 更新时间:2023-12-02 08:39:09 26 4
gpt4 key购买 nike

我一直在学习如何使用 Docker 来设置开发环境,但是,我很好奇这些想法如何转化为生产堆栈。举个例子,我有一个 Laravel (Php) 应用程序,它使用 MySQL、Redis 和 Nginx

因此,在生产中,假设我通常在 AWS 上的负载均衡器后面有 2 个应用程序 ec2 实例。使用 Docker 设置类似的生产情况时...

1) 因为我将使用 RDS 和 Elasticache,所以不需要这些容器。所以基本上,我只需要 PHP-Fpm 和 Nginx 的容器?

2) 为了获得高可用性,我在 ELB 后面仍然有 2 个(或至少超过 1 个)ec2 实例。所以我想每个实例都会运行上述容器(PHP 和 Nginx)。但这听起来与我之前的虚拟机设置没有什么不同,其中每个服务器都运行为应用程序提供服务所需的内容。准确吗?

3) 对于虚拟机,我传统上会将代码烘焙到 AMI 中,并将这些 AMI 添加到启动配置和 Auto Scaling 组,该组将根据需要启动实例。因此,对于部署,我将拆除旧的 ec2 实例并启动新的实例。使用 Docker,由于这些容器将在 ec2 实例上运行,我是否仍然需要启动/拆除虚拟机,或者我只需更换容器并保持虚拟机运行?

最佳答案

将 RDS、Elasticache 和其他完全托管的服务保留在 docker 环境之外是合理的。是的,为了获得高可用性,您需要多个运行 docker 守护程序的 EC2 实例。

真正的优势并不是拥有两个 EC2 实例,每个实例上运行两个 Web 服务器 Docker 容器。当您将应用程序分解为微服务时,真正的优势就会显现出来,其中多个容器组合起来构建您的 Web 应用程序,提供 benefits of microservices .

除此之外,DevOps 流程与 EC2 中传统的 Web 应用程序部署相比会有所不同,具有自动扩展和负载平衡功能,并且具有许多 benefits 。例如,您的源代码也将包含容器代码,这将保证环境在您的登台和生产中统一工作。此外,您还将拥有指向源代码管理中的分支/标签的图像,这允许获取新版本的新更新(增量下载)。

如果您要在 AWS 中设置 docker,建议使用 AWS ECS以减少管理开销。

关于docker - 了解生产中的 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45129729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com