如何将 Vagrant box 转换为 Docker 镜像

     2023-04-14     185

关键词:

【中文标题】如何将 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 权限。

如何将所有 *.dev 路由到 vagrant box 上的子文件夹

】如何将所有*.dev路由到vagrantbox上的子文件夹【英文标题】:Howtorouteall*.devtosubfoldersonvagrantbox【发布时间】:2015-01-3122:20:21【问题描述】:我希望每一个*.dev的Host都会被路由到我的vagrant机器到/var/www/vhosts/*.dev/public,例如我的本... 查看详情

如何从 Vagrant box 运行 ganache-cli?

】如何从Vagrantbox运行ganache-cli?【英文标题】:Howtorunganache-clifromVagrantbox?【发布时间】:2019-02-2103:44:51【问题描述】:我在Vagrant框中运行ganache-cli并尝试将Metamask(GoogleChrome)连接到它。但是Metamask无法连接到它。如果ganache-cli在主... 查看详情

vagrant怎么启动两个box

参考技术A1、搜索vagrantbox,如:百度vagrantbox。2、复制VagrantBox的url,以CentOS6.4x86_64Minimal为例。◆在vagrantbox页面查找CentOS6.4x86_64Minimal的url,该url可用于下载vagrantbox文件。3、添加VagrantBox。◆Vagrant添加VagrantBox有两种方式:离线添... 查看详情

vagrantboxphpcentos选哪个

安装Vagrant和VirtualBox3、在你本地的硬盘上创建一个用来存储Vagrant配置文件的目录,将1中下载的centos-6.5-x86_64-base.box镜像也放到这个目录里。比如你创建的目录地址为:E:\\testvbox,那么就将centos-6.5-x86_64-base.box放到此目录下.4、运行... 查看详情

vagrant第一次安装添加box报错:theboxfailedtounpackageproperly....(代码片段)

...ableandthentryagain.Theoutputfromattemptingtounpackage(ifany):x./box.ovfx./Vagrantfilex./box-disk001.vmdk:Writefailedbsdtar.EXE:Errorexitdelayedfrompreviouserrors.原因使用vagrantup启动虚拟机的时候,打包的虚拟机会保存在.vagrant.d/boxes目录下,这个文件夹默认是存放... 查看详情

如何将 Box<dyn Error + Sync + Send> 转换为 Box<dyn Error>

】如何将Box<dynError+Sync+Send>转换为Box<dynError>【英文标题】:HowtoconvertBox<dynError+Sync+Send>toBox<dynError>【发布时间】:2020-03-2614:16:52【问题描述】:在我的程序中,在辅助线程上执行了一些操作及其结果:Result&lt... 查看详情

如何从主机访问 vagrant box “guest machine”?

】如何从主机访问vagrantbox“guestmachine”?【英文标题】:howtoaccessvagrantbox"guestmachine"fromhostmachine?【发布时间】:2014-07-2923:34:17【问题描述】:我正在使用puphpet.com工具来设置Vagrant盒子。现在,我可以ssh到它并在浏览器上... 查看详情

在windows下用vagrant建立lnmp开发环境

1.安装vagrant,vitrualbox2.下载homestead的box包,并添加到vagrant下载地址:https://atlas.hashicorp.com/laravel/boxes/homestead如果这里没有看到下载链接,可以将版本号拼接为如下地址进行下载,即将下面的0.2.6换成下载对应的版本。https://atlas.has... 查看详情

在windows下用vagrant建立lnmp开发环境

1.安装vagrant,vitrualbox2.下载homestead的box包,并添加到vagrant下载地址:https://atlas.hashicorp.com/laravel/boxes/homestead如果这里没有看到下载链接,可以将版本号拼接为如下地址进行下载,即将下面的0.2.6换成下载对应的版本。https://atlas.has... 查看详情

Vagrant Box 缺少硬盘驱动器?

】VagrantBox缺少硬盘驱动器?【英文标题】:Vagrantboxismissingharddrive?【发布时间】:2020-04-2506:08:16【问题描述】:我为VirtualBox创建了全新的vagrantbox(安装了仿生服务器),VDI硬盘类型为60gb。其他一切似乎都运行良好,但我在vagran... 查看详情

[转帖]如何获得一个oraclerac数据库(从github-oracle/vagrant-boxes)---暂时未测试成功公司网络太差了..(代码片段)

如何获得一个OracleRAC数据库(从Github-oracle/vagrant-boxes)2019-11-2016:40:36 dingdingfish 阅读数5更多分类专栏: 如何获得一个Oracle数据库 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出... 查看详情

vagrant使用国内镜像安装插件和box镜像(代码片段)

dui前言Vagrant是非常优秀的本地虚拟化管理工具。无奈国内访问速度实在感人。本文分享一些如何使用国内镜像加速的经验,让Vagrant的使用更加爽快。插件镜像Vagrant的插件主要托管在RubyGems仓库,在国内几乎无法访问。万... 查看详情

❤️《vagrant官方中文文档》❤️②命令行界面之box语法(代码片段)

...算自用,现分享给大家,欢迎👏🏻纠错~Vagrant中文文档Vagrant命令行一、命令行界面命令自动补全二、Box1、BoxAddBoxadd子命令选项本地路径添加Box子命令选项2、BoxList3、BoxOutdated子命令选项4、BoxPrune子命令选项5、Box 查看详情

❤️《vagrant官方中文文档》❤️②命令行界面之box语法(代码片段)

...算自用,现分享给大家,欢迎👏🏻纠错~Vagrant中文文档Vagrant命令行一、命令行界面命令自动补全二、Box1、BoxAddBoxadd子命令选项本地路径添加Box子命令选项2、BoxList3、BoxOutdated子命令选项4、BoxPrune子命令选项5、Box 查看详情

从 OS X 连接到 Vagrant box 上的 Oracle

】从OSX连接到Vagrantbox上的Oracle【英文标题】:ConnectingtoOracleonaVagrantboxfromOSX【发布时间】:2012-05-0512:10:31【问题描述】:我在运行OSXLion的CentOS6Vagrantbox(VM)上安装了Oracle10g。在CentOS上,我可以为oracle用户(不是root)运行sqlplus。我... 查看详情

如何减小 Vagrant VM 映像的大小

】如何减小VagrantVM映像的大小【英文标题】:howtoreducethesizeofVagrantVMimage【发布时间】:2016-06-1402:44:00【问题描述】:我从这张图片https://atlas.hashicorp.com/bento/boxes/centos-6.7启动了一个虚拟机,它的大小只有2-300MB。然后我安装了一... 查看详情

Vagrant 将其 .box 文件下载到哪里?

】Vagrant将其.box文件下载到哪里?【英文标题】:WheredoesVagrantdownloadits.boxfilesto?【发布时间】:2012-04-2616:41:59【问题描述】:执行以下命令后.box文件会发生什么?vagrantboxaddlucid32http://files.vagrantup.com/lucid32.box下载完成后在文件系... 查看详情

Laravel/Homestead vagrant box 从系统中消失了

】Laravel/Homesteadvagrantbox从系统中消失了【英文标题】:Laravel/Homesteadvagrantboxdisapearedfromsystem【发布时间】:2019-04-2410:56:44【问题描述】:我有一个已经完成的php项目,对于初学者,我必须将它放在服务器上(计划使用Heroku)。我... 查看详情