Docker和AMI的区别

12 浏览
0 Comments

Docker和AMI的区别

在AWS的背景下:

AMI用于打包软件,并可部署在EC2上。

Docker也可用于打包软件,并且也可以部署到EC2上。

两者之间有什么区别,我该如何选择?

0
0 Comments

Docker和AMI之间的区别是什么?

在这个链接中,我们可以了解到Docker和AMI之间的区别:[链接](https://forums.docker.com/t/how-would-you-differentiate-between-docker-vs-ec2-image/1235/2)

虽然你的回答是完全正确的,但如果链接目标消失,它也可能变得100%无用。请编辑你的回答,保留链接作为原始来源。

Docker和AMI是两种不同的容器化技术,它们在应用程序部署和管理方面有一些不同之处。

Docker是一种轻量级的容器化平台,它利用容器技术来打包和部署应用程序。Docker容器是可移植的、可扩展的,并且可以在不同的环境中运行。Docker容器化应用程序可以在多个主机上以相同的方式运行,而不需要进行任何修改。

AMI(Amazon Machine Image)是亚马逊AWS的一种镜像类型,它是EC2实例的基础。AMI包含了EC2实例的操作系统、应用程序和配置信息。AMI可以用于创建和启动新的EC2实例,并且可以在不同的区域和账户之间共享。

Docker和AMI之间的主要区别在于它们的使用方式和适用场景。Docker主要用于开发、测试和部署应用程序,它提供了一个轻量级、可移植和可扩展的容器化平台。相比之下,AMI主要用于创建和管理EC2实例,它提供了一个可靠的基础设施来运行应用程序。

解决方法:请点击上面的链接,了解更多关于Docker和AMI之间的区别的详细信息。

0
0 Comments

AMI是一种镜像。这是一个完整的机器,你可以从中启动新实例。Docker容器更轻量且可移植。Docker容器应该可以在不同的提供者之间传输,而AMI则不行(不容易)。

AMI基本上是VM镜像。

Docker容器是打包的迷你镜像,在某个VM上以隔离的环境中运行。

应该将比较对象设为AMI和Docker镜像吗?

我同意,但更重要的是(在AWS内),你不能没有AMI就有任何Docker形式!某种程度上,只有AMI允许时,Docker才是“可传输的” 😉 还有一个小问题。硬件是由AMI定义的,而不是由Docker容器/镜像定义的。哎呀...不是甚至连硬件也是由EC2或fargate定义的,但它们都需要一个AMI。

另一个问题是安全性。这会引发更多的替代性问题,并且高度依赖于您的设置。但我今天看到的趋势是,Docker镜像通常没有内置的安全性。而AMI可以有,应该有一个最低限度的内置安全性。在AWS上,您可以使用其他工具来保护系统,但例如,使用给定AMI运行Docker镜像的EC2可能严重依赖于AMI的安全性。例如SSL/SSH版本。

请注意,Docker不在VM中运行。容器化与虚拟化(VM)不同。

0
0 Comments

AMI和Docker之间的区别

在使用Amazon AMI的EC2实例中运行Docker容器的方法中,随着时间的推移,Docker镜像变得庞大,并且随着时间的推移存在容器漂移。此外,应用程序启动所需的时间更长,因为必须启动EC2并使Docker带起您的应用程序服务器。

另一种方法是使用“不可变的EC2实例”。使用这种方法,您使用Amazon AMI作为基础,并安装所有依赖项(使用Shell脚本或Ansible),并将它们捆绑到AMI中。我们使用了Hashicorp Packer,这是一个很棒的工具。在这里,应用程序启动所需的时间大大缩短,因为所有依赖项(Java8、Tomcat、war文件等)已经安装在AMI中。

对于生产用例,使用Packer创建AMI,并使用Terraform启动云资源来使用此AMI。在Jenkins流水线中将所有这些绑定在一起。

0