如何将 Vagrant 框转换为 Docker 图像
How to convert a Vagrant box to a Docker image
我看到可以将 Docker 图像转换成 Vagrant 盒子。
有没有办法将 Vagrant 盒子转换成 Docker 图像?
我在我的 Github 项目 blacklabelops/centos 中用 EC2 盒子和 Virtualbox 盒子重放了这个。我已经准备了一个带有必要安装的 Vagrantfile,你可以用你的 Vagrant 盒子自己试试。
EC2 盒子:
在我的存储库中使用 https://github.com/katzj/ami-creator - Skripts 创建和配置 AMI 映像。
然后使用 Guestfish 将图像提取到压缩包中。 - 我的存储库中的脚本。
导入压缩包 Docker。 - 我的存储库中的示例。
现在使用 Vagrant Virtualbox,可以使用我提供的 Vagrantfile 重播命令。只需克隆存储库,旋转它并键入:
$ qemu-img convert -f vmdk -O raw MyTry-disk1.vmdk mytry.img
The Vagrant box's VMDK can be found in the Virtualbox folder, usually ~/VirtualBox\ VMs/.
创建原始文件后,您可以应用 Guestfish。
$ guestfish -a mytry.img --ro
$ ><fs> run
Note: tty
$ ><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
Note: exiting tty
正在导入 docker:
$ cat mytry.xz | docker import - mytryimage
查看容器内部
$ docker run -it mytryimage bash
我看到可以将 Docker 图像转换成 Vagrant 盒子。
有没有办法将 Vagrant 盒子转换成 Docker 图像?
我在我的 Github 项目 blacklabelops/centos 中用 EC2 盒子和 Virtualbox 盒子重放了这个。我已经准备了一个带有必要安装的 Vagrantfile,你可以用你的 Vagrant 盒子自己试试。
EC2 盒子:
在我的存储库中使用 https://github.com/katzj/ami-creator - Skripts 创建和配置 AMI 映像。
然后使用 Guestfish 将图像提取到压缩包中。 - 我的存储库中的脚本。
导入压缩包 Docker。 - 我的存储库中的示例。
现在使用 Vagrant Virtualbox,可以使用我提供的 Vagrantfile 重播命令。只需克隆存储库,旋转它并键入:
$ qemu-img convert -f vmdk -O raw MyTry-disk1.vmdk mytry.img
The Vagrant box's VMDK can be found in the Virtualbox folder, usually ~/VirtualBox\ VMs/.
创建原始文件后,您可以应用 Guestfish。
$ guestfish -a mytry.img --ro
$ ><fs> run
Note: tty
$ ><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
Note: exiting tty
正在导入 docker:
$ cat mytry.xz | docker import - mytryimage
查看容器内部
$ docker run -it mytryimage bash