【问题标题】:What is the difference between running an application on ec2-server and running an application on top of docker on ec2-server?在 ec2-server 上运行应用程序和在 ec2-server 上的 docker 之上运行应用程序有什么区别?
【发布时间】:2022-02-21 15:34:33
【问题描述】:

假设我们有一个战争文件。 我将在 AWS 上部署它。

我可以安装tomcat等,直接部署在ec2-instance上。 我可以安装 docker 并在容器中安装所有内容并进行部署。

有什么区别? 我什么时候应该用什么?

来自 CryptoFool 的更新 (2/22):

关于如何部署我的 Java 后端服务应用程序,我也面临同样的问题。我要找的答案还不在这里。

我是一名经验丰富的开发人员,多年来一直使用 Docker。我从开发和 devops 的角度理解这两个选项之间的区别。我明白 Docker 的作用。

我想知道的是,如果我将 Docker 添加到组合中,在功能或性能方面是否会丢失任何东西。假设我的应用程序独占使用该实例。如果我的配置很理想,我的应用程序在 Docker 下运行时是否会有同样多的可用内存? CPU 也一样...我的应用程序在 Docker 下运行会/可能会更慢吗?网络性能怎么样...应该是一样的吗?换句话说,我是否可以假设我的应用可以通过任何一种方法提供相同的用户体验?

知道我对 Docker 所做的事情后,我的想法是没有理由期望这两种方法在运行时有任何显着差异。我说的对吗?

【问题讨论】:

    标签: amazon-web-services docker amazon-ec2 containers dockerfile


    【解决方案1】:

    EC2 实例是一个虚拟机。你可以用它做任何你想做的事情(你还应该做一些事情,比如打补丁)。 EC2 实例基于 Amazon 系统映像 (AMI)。

    docker 容器在 docker 主机上运行。 docker 主机可以是 EC2 实例或您的笔记本电脑。它基于 docker 映像。所以你还是需要toe docker host。

    如果您只想发动战争,请查看 ElasticBeanstalk。你可以只上传战争,其他一切都由 AWS 管理。

    如果你想使用 Docker,你也可以使用 Beanstalk 或者设置你自己的 ECS 集群,在我看来这对于一个应用来说是多余的。

    更新(2/22):

    ECS 是另一个不错的选择。 ECS 将允许您在容器中运行您的应用程序,而无需您自己管理 EC2 实例。它在功能上与您的 Docker 替代方案相同。

    【讨论】:

    • 是的.. 感谢您的回答。但无论我使用哪个输出都是一样的。我什么时候应该选择一个而不是另一个?有什么区别 ?我什么时候应该使用什么?
    • 这完全取决于您的要求。您唯一的要求是它是一个战争文件。如果这是您唯一的要求,那么您有很多选择。所以你可能会选择最简单的解决方案,具有成本效益,...看看 ElasticBeanstalk。
    【解决方案2】:

    区别在于便利性和您的用例。使用 docker,您可以准备一个基于 tomcat 映像的 Dockerfile,添加您的应用程序并对其进行配置。一切都来自您的本地机器。然后,您可以将 docker 映像上传到 docker 注册表,然后在您的 ec2 实例中运行它。您无需创建 ami 即可复制您的配置。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2017-08-07
      • 2018-12-06
      相关资源
      最近更新 更多