我看到可以将Docker镜像转换为Vagrant框。

有没有一种方法可以将Vagrant框转换为Docker镜像?

最佳答案

我在Github项目blacklabelops/centos中用EC2框和Virtualbox框重播了此内容。我已经准备了带有必要安装的Vagrantfile,您可以在Vagrant盒子中尝试一下。

EC2盒:

  • 在我的存储库中,使用https://github.com/katzj/ami-creator-Skripts创建并置备AMI镜像。
  • 之后,使用Guestfish将图像提取到tarball中。 -我的存储库中的Skripts。
  • 将tarball导入Docker。 -我的存储库中的示例。

  • 现在,借助Vagrant Virtualbox,可以使用我提供的Vagrantfile重放命令。只需克隆存储库,旋转它并输入:
    $ qemu-img convert -f vmdk -O raw MyTry-disk1.vmdk mytry.img
    



    创建原始文件后,您可以应用Guestfish。
    $ guestfish -a mytry.img --ro
    $ ><fs> run
    


    $ ><fs> list-filesystems
    /dev/sda1: ext4
    /dev/VolGroup/lv_root: ext4
    /dev/VolGroup/lv_swap: swap
    $ ><fs> mount /dev/VolGroup/lv_root /
    $ ><fs> tar-out / - | xz --best >>  mytry.xz
    $ ><fs> exit
    



    导入docker:
    $ cat mytry.xz | docker import - mytryimage
    

    看看容器里面
    $ docker run -it mytryimage bash
    

    10-08 06:27