如何将 Vagrant box 转换为 Docker 镜像
Posted
技术标签:
【中文标题】如何将 Vagrant box 转换为 Docker 镜像【英文标题】:How to convert a Vagrant box to a Docker image 【发布时间】:2015-09-28 00:58:15 【问题描述】:我看到可以将 Docker 映像转换为 Vagrant 盒子。
有没有办法将 Vagrant box 转换为 Docker 镜像?
【问题讨论】:
【参考方案1】:我在我的 Github 项目blacklabelops/centos 中使用 EC2 盒子和 Virtualbox 盒子重放了这个。我已经准备了一个带有必要安装的 Vagrantfile,你可以用你的 Vagrant 盒子自己尝试一下。
EC2 盒子:
使用 https://github.com/katzj/ami-creator 创建和配置 AMI 映像 - 我的存储库中的脚本。
然后使用 Guestfish 将图像提取到压缩包中。 - 我的存储库中的脚本。
在 Docker 中导入压缩包。 - 我的存储库中的示例。
现在有了 Vagrant Virtualbox,可以使用我提供的 Vagrantfile 重播命令。只需克隆存储库,启动它并输入:
$ qemu-img convert -f vmdk -O raw MyTry-disk1.vmdk mytry.img
Vagrant box 的 VMDK 可以在 Virtualbox 文件夹中找到,通常是 ~/VirtualBox\VMs/。
创建原始文件后,您可以应用 Guestfish。
$ guestfish -a mytry.img --ro
$ ><fs> run
注意: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
注意:退出 tty
导入docker:
$ cat mytry.xz | docker import - mytryimage
查看容器内部
$ docker run -it mytryimage bash
【讨论】:
谢谢,帮了我很多忙! 太棒了!谢谢!问候慕尼黑。注意:guestfish 需要 root 权限。以上是关于如何将 Vagrant box 转换为 Docker 镜像的主要内容,如果未能解决你的问题,请参考以下文章
如何将显示从 vagrant Linux box 导出到 MacOS 主机?
如何将所有 *.dev 路由到 vagrant box 上的子文件夹