是否可以将包含操作系统(Arch Linux)的.img文件转换为Docker镜像?更准确地说,我想将RuneAudio Raspberry Pi镜像dockerize。
是否可以将包含操作系统(Arch Linux)的.img文件转换为Docker镜像?更准确地说,我想将RuneAudio Raspberry Pi镜像dockerize。
从完整的操作系统镜像生成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访问权限,并且不需要使用循环设备和挂载点,所以设置和清理更少。
docker load
和docker save
https://docs.docker.com/engine/reference/commandline/load/ 和 https://docs.docker.com/engine/reference/commandline/save/。 - user2915097$ docker load -i RuneAudio_rpi2_0.3-beta_20150304_2GB.img
错误响应来自守护程序:Untar重新执行错误:退出状态1:输出:archive/tar:无效的tar头 - Andrej Guráň