带开放堆栈的 Dart lang 应用程序 / docker / vagrant

Dart lang app with open stack / docker / vagrant

我是这些技术的新手 (open stack / docker / vagrant),不确定我是否理解正确(很可能没有理解),对我来说,我知道这就像拥有一个便携式设备应用到 运行 它具有相同的开发配置以确保所有开发团队具有相同的设置,但不了解开发后的内容以及如何使用 dart 应用程序从中受益。

我的问题是: 1.纠正我的理解 2. 我是否需要最终用户在他的系统中安装这些东西,并且 运行 我的应用程序通过它们,就像在开发阶段一样? 3. 我如何通过它们 build/develop/distribute dart lang 应用程序,可能因为 hese 和 dart 都是新的,我在谷歌搜索时找不到足够的信息。

谢谢

Docker 类似于 VM-Ware 或 Virtualbox 等虚拟机,因为它在主机操作系统和操作系统 运行ning 之间创建了一个抽象层 Docker容器。区别在于 Docker 不模拟整个硬件。缺点是Docker在Linux上只有运行,在Docker里面只有Linux可以是运行。如果您的主机是 Intel 系统,则您不能在容器内 运行 ARM Linux。 (理论上你可以 运行 Virtualbox inside Docker and 运行 Windows. 或者里面的其他操作系统)

使用 Docker,您可以在与应用程序部署时 运行 相同的环境中本地测试您的应用程序。

例如,当您在 Google Compute Engine 中创建要 运行 的应用程序时,您可以在 Docker 容器中本地安装和测试它,然后部署 Docker 容器到 Google Compute Engine 作为一个整体。当部署的应用程序中存在错误时,您也应该能够在本地重现它,因为它只是一个 1:1 副本。不会引入错误,因为操作系统或其他依赖项在部署环境中的安装方式与 develeopment/test 环境中的不同。

Docker文件是一组设置Docker容器的说明。如果您想创建一个新的 Docker 容器(例如对于新开发人员),您只需让 Docker 处理 Docker 文件并从中创建一个新的 Docker 容器.这允许轻松创建新容器。 如果你想更新一个依赖到一个新的版本或者想添加删除组件 to/from 环境你改变 Docker 文件并从它创建一个新的容器。通过这种方式,您可以避免手动 addition/removal form/to 现有容器手动让不同 developers/testers/deployment 的容器彼此分离。

我自己没有使用过 OpenStack,但从网页上看,它似乎提供了组件和工具来构建和管理您自己的云基础架构。

我自己也没有使用过 Vagrant,但它似乎有助于自动执行许多与创建和管理虚拟机相关的任务,例如 VM-Ware、Virtualbox、Docker 以及可能的其他。 例如,当您有一个服务器应用程序时,它可能包含许多组件,您不希望全部 运行 在一个容器中,而是分成几个容器。一个容器用于数据库,一个用于 Web 服务器,一个用于后端应用程序(例如在 Dart 中创建),等等。管理所有这些容器会变得很麻烦。 Vagrant 有助于自动化相关任务。