我自己对 boot2docker 的自定义没有反映到 iso 映像中

my own customizations of boot2docker are not reflected into the iso image

按照 Making your own customised boot2docker ISO 的部分,我编写了下面的 Dockerfile 来安装 vim 包:

FROM boot2docker/boot2docker

RUN apt-get update && apt-get install -y vim

RUN /make_iso.sh

CMD ["cat", "boot2docker.iso"]

然后成功执行了这些命令:

docker build -t my-boot2docker-img . && docker run --rm my-boot2docker-img > boot2docker.iso

我使用这个 iso 映像创建了一个虚拟机并登录了它。我原以为 vim 现在可以在我的 shell 上使用,但事实并非如此。从构建过程控制台日志中,我看到 vim 安装成功。但是它显然不包含在 iso 中。

有人可以告诉我,我在这里错过了什么吗?

您只在生成最终 boot2docker iso 的构建容器中安装了 vim。要获得所需的结果,您需要在构建容器中的 $ROOTFS 处安装任何 packages/data。有关如何使用 apt-get 完成此操作的一些提示,请参阅此 answer.

但首先您应该问问自己,为什么您需要 vim 在一个仅作为 mac/windows 用户的透明代理的虚拟机中。

编辑:

如果您有正当理由构建自己的 boot2docker iso,请查看 boot2docker repo

dockerfile细分:

  1. 在构建容器中安装构建依赖项
  2. 下载并编译支持aufs的linux内核,复制到$ROOTFS
  3. $ROOTFS
  4. 下载并提取 TinyCore 分发
  5. 下载并解压 $TCZ_DEPS 中定义的 TinyCore 包到 $ROOTFS
  6. $ROOTFS
  7. 构建并安装 VMware 工具和其他助手
  8. 导出 $ROOTFS 作为新的 iso

我可能会首先考虑在 step 4 上进行扩展,即只需从 TinyCore 存储库下载软件包即可。