在ec2服务器上运行应用程序和在ec2 server上的docker之上运行应用程序有什么区别



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

我可以安装tomcat等,并将其直接部署在ec2实例上。我可以安装docker,安装容器中的所有内容并部署它。

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

CryptoFool更新(2/22):

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

我是一个经验丰富的开发人员,已经使用Docker很多年了。我从发展和devops的角度理解这两种选择之间的差异。我明白Docker的所作所为。

我想知道的是,如果我将Docker添加到组合中,在功能或性能方面是否会有所损失。假设我的应用程序独占使用该实例。如果我配置得很理想,我的应用程序在Docker下运行时会有同样多的内存吗?与CPU相同。。。我的应用程序在Docker下会不会运行得更慢?网络性能如何。。。这两种方式都一样吗?换言之,我能假设我的应用程序将通过任何一种方法提供相同的用户体验吗?

知道我对Docker做了什么,我的想法是,没有理由期望这两种方法在运行时有任何显著的差异。我说得对吗?

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

docker容器在docker主机上运行。docker主机可以是EC2实例或您的笔记本电脑。它是基于一个码头工人的形象。所以你仍然需要码头工人主机。

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

如果你想使用Docker,你也可以使用Beanstalk或建立自己的ECS集群,在我看来,这对一个应用程序来说太过分了。

更新(2/22):

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

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

问候

相关内容

  • 没有找到相关文章

最新更新