Docker 的替代方案,对维护包依赖项的限制较少

武月

我在与 Xenial 一起运行的 ROS 上研究机器人,但这适用于在 Ubuntu 上运行的任何应用程序。有一个工程师团队,很难让每个人的测试站在封装版本中保持统一。不久前,由于新的更新/升级改变了大部分软件包功能,我们的测试平台完全中断。

我想避免这种情况,并有一个解决方案可以让我轻松复制这些测试平台。

我意识到 Docker 是这方面的流行解决方案,但容器解决方案对我的需求来说有点过于严格了。我不介意重新安装驱动程序等,我发现在运行我的原始测试平台时处理 Docker 特定问题很麻烦(特别是因为它需要多容器)。

是否有可用的解决方案可以满足我的需求,而无需像 Docker 这样的容器?

愚蠢的方法只是克隆我的整个测试平台......也许这对我来说仍然是最好的?

罗伯特·里德尔

正如我在评论中所建议的那样,如果您正在寻找一种简单的方法来为每个人提供相同的环境并轻松恢复到预定义状态,我建议您使用虚拟化。

完整的 Howto 可能会超出此处的答案框架,因此这里有一些提示和链接:


KVM

我建议使用LVM,它提供快照、恢复和调整大小

或者如果您更喜欢文件:qcow2,因为它还提供快照和(一些)调整大小

QEMU 图像 (qcow2)


XEN

另一种选择也是 XEN。

有一些内置工具可用于使用 debootstrap,因此您可以在每次需要时为同事创建一个新的和更新的 VM。您还可以在此处使用 LVM 或文件后端 (qcow2)。

XEN 还提供PVM/半虚拟化来宾,这可以显着提高性能。


具体来说,我建议准备一个主映像/VM 然后克隆它,这样每个团队成员都有他/她的 VM。

使用 LVM,您可以创建原始状态的快照,并使用--merge(按需或定期使用 cronjob)轻松恢复到它

或者,您可以使用文件后端(可能会影响 I/O)并使用主映像文件复制单个 VM。

每个开发人员都需要的真实数据,我会使用NFS进行挂载,并向团队明确表示只会保存已挂载的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章