docker - 我自己对 boot2docker 的自定义没有反射(reflect)到 iso 镜

在 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 安装任何包/数据。在构建容器中。有关如何使用 apt-get 完成此操作的一些提示看到这个answer .

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

编辑:

当您有充分的理由构建自己的 boot2docker iso 时,请查看 boot2docker repo .

dockerfile分解:

  • 在构建容器中安装构建依赖项
  • 下载并编译支持aufs的linux内核,复制到$ROOTFS
  • 下载并解压TinyCore分布于 $ROOTFS
  • 下载并解压TinyCore $TCZ_DEPS 中定义的包至$ROOTFS
  • $ROOTFS 上构建和安装 VMware 工具和其他帮助程序
  • 导出 $ROOTFS作为新的 ISO

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

    关于docker - 我自己对 boot2docker 的自定义没有反射(reflect)到 iso 镜像中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34708336/

    相关文章:

    docker - 是 "docker start"完全恢复由 "docker run"启动的所有正在

    docker - Docker:对apache虚拟主机进行Docker化

    amazon-web-services - 如何为Docker注册日志记录驱动程序?

    amazon-web-services - 如何使用 Amazon ECS 从 Tutum 私有(p

    makefile - 获取刚刚生成的图像的ID

    logging - Dockerized Kibana外部化日志

    amazon-web-services - 我可以安排Docker在特定时间在Amazon ECS上

    spring - Docker-compose从链接迁移到网络MongoDB数据库问题

    docker - 运行openshift/origin docker时出错:运行 'chcon'来设

    hadoop - Pig:访问内部元组的字段进行过滤