是否可以从包含 OS 的 .img 文件创建 docker 图像
Is it possible to create docker image from .img file containing OS
是否可以将包含 OS (Arch Linux) 的 .img
文件转换为 Docker 图像?更准确地说,我想 dockerize 一个 RuneAudio Raspberry Pi 图像。
从完整的操作系统映像生成 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 映像。请注意,这当然只会在 Docker 运行 下 Raspberry Pi 下 运行,并且如果不进行进一步修改,生成的图像不一定会工作。
您也可以通过在本地挂载磁盘映像来完成同样的事情:
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 访问权限,也不需要处理循环设备和挂载点,因此设置和清理工作较少。
是否可以将包含 OS (Arch Linux) 的 .img
文件转换为 Docker 图像?更准确地说,我想 dockerize 一个 RuneAudio Raspberry Pi 图像。
从完整的操作系统映像生成 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 映像。请注意,这当然只会在 Docker 运行 下 Raspberry Pi 下 运行,并且如果不进行进一步修改,生成的图像不一定会工作。
您也可以通过在本地挂载磁盘映像来完成同样的事情:
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 访问权限,也不需要处理循环设备和挂载点,因此设置和清理工作较少。