如何将Docker镜像转换为(vagrant)VirtualBox框?

我一直在看Packer.io,并且很乐意使用它来提供/准备我们的开发人员使用的流浪者(VirtualBox)盒子.

我知道我可以使用VirtualBox Packer构建器使用VirtualBox构建盒子,但是找到Docker的层堆叠以提供更快的盒子开发过程.

如何使用Dockerfile生成图像,然后将其导出为Vagrant框?

最佳答案
从docker图像中查找docker图像的大小

REPOSITORY   TAG    IMAGE ID       CREATED             SIZE
mybuntu   1.01   7c142857o35   2 weeks ago         1.94 GB

基于映像docker运行mybuntu:1.01运行容器

从容器中创建QEMU图像,
另外,在第一个命令中使用图像的大小(seek = IMAGE_SIZE).
并且,对于docker export命令,从docker ps -a中检索相应的容器ID

dd if=/dev/zero of=mybuntu.img bs=1 count=0 seek=2G
mkfs.ext2 -F mybuntu.img
sudo mount -o loop mybuntu.img /mnt
docker export <CONTAINER-ID> | sudo tar x -C /mnt
sudo umount /mnt

使用qemu-utils转换为vmdk

sudo apt-get install qemu-utils
qemu-img convert -f raw -O vmdk mybuntu.img mybuntu.vmdk

有关可用于转换的格式的更多信息,请参见here.
现在,您可以在virtualbox中导入vmdk文件

转载注明原文:如何将Docker镜像转换为(vagrant)VirtualBox框? - 代码日志