无法运行由ISO创建的Docker镜像

5
在这里,我正在尝试从Ubuntu 14.04 ISO文件创建Docker镜像,因为我知道Ubuntu 14.04已经在Docker Hub上可用。因为稍后我必须为Suse10和Suse11 [sp1 64位]创建Docker镜像,而它们在Docker Hub上不可用。
我能够使用以下命令从Ubuntu 14.04 ISO创建Docker镜像:
# mkdir rootfs
# mount -o loop /path/to/iso rootfs
# tar -C rootfs -c . | docker import - newubuntu

当上述镜像成功创建后,我可以使用 docker images 命令进行查看。

root@ubuntu:~# docker images

代码库 标签 镜像ID 创建时间 虚拟大小

newubuntu 最新版本 1dcd1b632d37 5 天前 1.015 GB

但是当我尝试运行镜像时,我收到以下错误信息

root@ubuntu:~# docker run -t -i newubuntu /bin/bash

2015/03/11 06:59:16 执行: "/bin/bash",查找/bin/bash失败:没有那个文件或目录

请告诉我如何解决这个错误。我应该能够从该映像创建容器并安装其他应用程序。

2个回答

3
您正在从Ubuntu的ISO文件构建镜像,但您真正想要的是从已安装的Ubuntu系统中构建镜像。
您需要执行以下操作:
  • 在虚拟机中从ISO文件安装Ubuntu。

  • 对VM的/目录进行归档(可以使用cd / && tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /命令完成)。

  • 使用Docker导入(可以使用docker import /path/to/your/backup.tar.gz命令完成)。

希望这能帮到您。

嗨@xav19,你有更完整的描述吗?(任何你的回答都会有帮助。谢谢) - Robert Lugg
1
嗨@robert-lugg!初始问题的作者试图从安装ISO创建一个docker镜像。但是,docker镜像是已安装系统的镜像,而不是安装CD / ISO的镜像。如果您只有安装ISO,请在虚拟机中安装它,制作VM的根文件系统的tar.gz(cd / && tar -cvpzf backup.tar.gz --exclude = / backup.tar.gz --one-file-system /),将存档导出到主机系统上并在docker内部导入它(docker import /path/to/your/backup.tar.gz)。这应该解决问题。 - xav19
谢谢@xav19。太好了。我担心无法“捕获”/中的所有内容,但我会尝试一下。 - Robert Lugg

0
使用debootstrap将基础映像(您可以包含和排除软件包)安装到可chroot的目录中。
您可以使用该目录创建基础映像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接