【发布时间】:2019-06-12 13:35:47
【问题描述】:
我是 Docker 的新手。通过这个post我为Docker制作了一个.img文件,但是我不知道如何将它作为Docker镜像导入......
【问题讨论】:
标签: docker raspberry-pi3 raspbian volumio
我是 Docker 的新手。通过这个post我为Docker制作了一个.img文件,但是我不知道如何将它作为Docker镜像导入......
【问题讨论】:
标签: docker raspberry-pi3 raspbian volumio
从完整的操作系统映像生成 Docker 映像通常是一个次优过程。操作系统映像将包含各种在 Docker 环境中根本不需要的东西,这仅仅意味着生成的映像将变得不必要地大。
也就是说,如果您仍然想尝试这个,libguestfs 包中的 guestfish 命令让这变得非常简单:
guestfish --ro -a RuneAudio_rpi_0.3-beta_20141029_2GB.img -m /dev/sda5:/ tar-out / - | docker import - runeaudio
这将使用 RuneAudio_rpi_0.3-beta_20141029_2GB.img 磁盘映像的内容创建一个 runeaudio docker 映像。请注意,这当然只能在运行在 Raspberry Pi 上的 Docker 下运行,并且生成的映像不一定能在没有进一步修改的情况下工作。
你也可以通过在本地挂载磁盘镜像来完成同样的事情:
losetup -P /dev/loop0 RuneAudio_rpi_0.3-beta_20141029_2GB.img mount /dev/loop0p5 /mnt tar -C /mnt -cf - | docker import - runeaudio umount /mnt losetup -d /dev/loop0
我喜欢 guestfish,因为它不需要 root 访问权限,也不需要处理循环设备和挂载点,因此设置和清理工作更少。
查看:Is it possible to create docker image from .img file containing OS
【讨论】:
docker image save ... 命令获得了 .img 文件,一旦我执行了 guestfish 命令,我在磁盘上的本地图像上创建的图像大小为 0 字节!
docker image save ... 生成了一个.img 文件,您可以使用docker image load -i <file.img> 将其加载回来