web-applications - Docker或Vagrant是否能够安全地“打包”Web应用程序?

web-applications - Docker或Vagrant是否能够安全地“打包”Web应用程序?,第1张

我是一名Web应用程序的实习生,在一家不进行Web开发或sysadmin的公司工作。 此应用程序位于备份服务器上(用作Time Machine驱动器的Mac Mini),我安装了MEAN堆栈和其他一些所需的工具。

由于该公司不是非常精通技术,并且可能会在某一天或某些时候弄乱软件,我想知道我是否可以在Docker或Vagrant容器中“打包”应用程序以重新启动它在一个命令中,设置了所有工具和配置,并且在应用程序应该安装在另一台机器上的情况下也使其可移植。

TL; DR 我可以将网络应用及其堆栈打包到Docker / Vagrant容器中,以便于安装和安装。运行

最佳答案:

3 个答案:

答案 0 :(得分:2)

  

我可以将网络应用及其堆栈打包到Docker / Vagrant容器中,以便于安装和安装。运行

是的,两个人都有。

使用Vagrant

首先,Vagrant不是我最喜欢的解决方案,但是你可以做的是:你可以编写一个Vagrantfile来提取你想要的Linux映像,安装你的东西(例如Tomcat或NGINX服务器),配置一切(文件夹结构) ,打开端口)并将您的最终应用程序复制到映像(例如WAR文件)。现在,您可以在VM映像中获得所需的一切,并且只需共享此映像即可使您的公司能够运行您的应用程序。

赞成

  • 一切都在一张图片上
  • 如果图片运行且您的公司遇到问题,他们可以轻松连接到VM(通过SSH)并修复它。

缺点

  • 图片可能非常大(很多GB)
  • 如果您使用Vagrant,您通常会将Vagrantfile共享给其他人,而不是它构建的VM映像(但这不是您想要的)

使用Docker

使用Docker,您可以将应用程序及其依赖项打包到图像中。请注意,您将每个依赖项(例如您的数据库)打包到一个单独的图像中,而不是在一个图像中。这些图像将由Dockerfiles构建,您可以将它们上传到Docker Registry或将它们作为文件导出到磁盘。您可以共享它们(通过共享文件或通过从Docker Registry中提取它们来实现)并编写脚本以将它们一起运行以启动应用程序。

赞成

  • 与VM图像相比较小的图像(见上文)
  • Docker是为此目的而制作的(将准备好的图像共享给其他人)

缺点

  • 如果您在应用运行时出现问题,则可能更难以解决此问题,因为您需要构建新图像

IMHO

将所有内容打包到Docker镜像中。编写一个脚本来一起运行所有图像(你可以编写一些shell脚本,但你也可以使用一些花哨的Puppet,Ansible,Chef安装)。而已。您的堆栈便于携带且易于启动。

只是旁注

如果贵公司真的很少了解科技产品,请小心。每个新工具(即使它与Docker一样有用)都是他们学习和维护的新东西。

答案 1 :(得分:0)

签出Docker-Compose您可以对其进行设置,以便所有内容都以1个命令运行

docker-compose up

答案 2 :(得分:0)

简而言之,至少对于Vagrant来说,答案是 no 。对于Docker,也许,但是......

你真正想要的是一个配置工具 - Docker和Vagrant都没有。您的需求听起来更像Ansible,Chef,Salt,Puppet等。这些是Docker和Vagrant的补充 - 其中一个加上Docker容器,因为最终结果看起来像是您的场景的教科书示例。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复