5

我通过 Docker 从源代码构建并按照步骤完成了Firecracker microVM的入门指南。我通过 CLI/Visual Studio UI/ECS 掌握了 Docker 的工作知识,并记得在 Docker 普及之前手动构建 AWS AMI...

然而,这部分对我来说是完全未知的领域,过去几周的几轮谷歌搜索并没有帮助:

接下来,您将需要一个未压缩的 Linux 内核二进制文件和一个 ext4 文件系统映像(用作 rootfs)。您可以使用我们的 microVM 映像 S3 存储桶中的这些文件:kernelrootfs

  1. 什么是hello-vmlinux.bin以及如何使用我的预安装应用程序构建一个?是否可以与 Docker 或 AMI 类似,即以简单的方式完成?

  2. 什么是hello-rootfs.ext4文件以及如何为与上述 1. 中相同的目的创建自定义文件?

4

1 回答 1

5

vmlinux.bin - 虚拟机将使用的 linux 内核映像。可能您可以使用提供的内核而无需任何修改。

hello-rootfs.ext4 - 这是一个包含 VM 根文件系统的文件。您必须修改文件以添加您的应用程序。

  1. Mount 提供了 rootfs 来做你的改变

mkdir -p /tmp/myroot

sudo mount rootfs.ext4 /tmp/my-rootfs

  1. 将您的应用程序和所有依赖项复制到 /tmp/my-rootfs/opt/
  2. 将应用程序的启动脚本添加到 /tmp/myroot/etc/init.d/ 必须为 OpenRC 初始化系统准备启动脚本。

  3. 卸载 rootfs

    sudo umount /zprojects/modus/sketch/images/hello-rootfs.ext4

启动 firecracker,这样您的应用程序将作为 VM init 系统启动的一部分启动。

您可能还想检查如何为您的 VM 提供网络访问:vm network setup doc

于 2019-04-03T19:17:44.900 回答