gpt4 book ai didi

web-applications - Docker或Vagrant是安全地 “package” Web应用程序的解决方案吗?

转载 作者:行者123 更新时间:2023-12-02 19:13:11 26 4
gpt4 key购买 nike

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

由于该公司不是很精通技术,可能有一天或以后会与该软件搞混,所以我在想我是否可以将应用程序“打包”在Docker或Vagrant容器中以单个命令重新启动,所有工具和配置设置,并在应用程序应安装在另一台计算机上的情况下使其可移植。

TL; DR 我可以将Web应用程序及其堆栈打包到Docker / Vagrant容器中,以使其易于安装和运行吗?

最佳答案

Can I package a web app and its stack in a Docker/Vagrant container to make it easy to install & run?



是的,他们两个都有。

与流浪汉

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

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

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

  • 使用Docker

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

    优点
  • 与VM镜像相比,镜像较小(请参见上文)
  • Docker就是为此目的而制作的(与他人共享准备运行的图像)

  • 缺点
  • 如果应用程序运行时遇到问题,则可能更难解决该问题,因为您需要构建一个新图像

  • 恕我直言

    将所有内容打包到Docker镜像中。编写脚本以一起运行所有镜像(您可以只编写一些shell脚本,但也可以使用一些精美的Puppet,Ansible,Chef安装)。而已。您的堆栈是便携式的,易于启动。

    只是一个旁注

    如果您的公司真的很少了解技术知识,请当心。每个新工具(即使它像Docker一样有用)对于他们来说也是学习和维护的新东西。

    关于web-applications - Docker或Vagrant是安全地 “package” Web应用程序的解决方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803169/

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