Docker 提供了一个容器化的轻量环境,但是它太轻量,生命周期很短暂。(更多Docker 的内容可以查看我的另外一篇文章)。

区别直接总结如下:

Docker基于Go语言开发,使用了LXC(Linux 内核容器虚拟化),cgroup,Linux内核等,直接依靠系统的功能来提供基础设施。

Vagrant基于基础设施自动化工具Chef或者Puppet,或者用户提供脚本,来操纵镜像,构建基础设施。

这个话题有点反向操作,但是Vagrant还是有必要学习使用的!Docker才是现在最流行的基础设施容器化的核心,vagrant跟它相比就是一个“空壳”。

有时候我们需要一个复杂定制化的操作系统环境(比如设置一个集群),那可以怎么做?

方式一:安装一个虚拟机,通过图形化界面,命令行终端来安装。

这种方式不具有重复使用的效果,除了这个虚拟机能够被导出(Export),被别人使用Virtualbox 导入使用。

这就要求对方的虚拟机软件也的一样的,有时候还会有版本兼容问题,镜像也就仅此重用性。

方式二:使用Vagrant,它很好的遵循了Infrastructure-as-Code(基础设施及代码)

把一个虚拟机的构造,从一个脚本创造出来。

这种方式比前者更具备兼容性,因为vagrant把机器构建分为了主机部署+定制脚本执行两个部分。

那么,虚拟机跟Vagrant的区别:

虚拟机软件(VirtualBox,VMWare等等)提供的是用户界面给用户导入基础镜像,加载启动指定操作系统镜像,可以带界面的系统镜像。自行通过手动操作。或者无界面终端敲命令进行后续使用定制等。

Vagrant基于Chef或者Puppet或者用户提供脚本,来操纵镜像,构建基础设施,更重要的是通过配置脚本构建

这里可以看到,使用后者Vagrant,只要遵循所有环境(服务器)相关的更改都通过provisioner(脚本/Puppet等),那么我们是可以随时再次重做一个一样的操作环境的。

Vagrant::Config.run do |config|config.vm.provision :puppet, :manifest_file => "init.pp"
end

好,这里再次概括一下 Vagrant

vagrant是一个用来构建与管理虚拟机的一个工具。

它能自动化虚拟机操作系统的构建,支持多个虚拟机提供载体,可以是VirtualBox,VMware这些我们常用的虚拟机软件;

下图为虚拟机截图,大家可以去试试,这三个虚拟机都是使用Vagrant构建的。

也能使用AWS作为载体,更多载体信息可以阅读:https://www.vagrantup.com/docs/providers

更多Vagrant 的概念请移步:https://www.vagrantup.com/intro

如下图,Vagrant凌驾在其他虚拟机之上(当前也能操纵AWS亚马逊云)

了解完概念,我们来看看Vagant这个组件用法:

两个常用命令

启动一个虚拟机:vagrant up

关闭虚拟机 : vagrant halt

(感谢三笠指出,之前记错成stop命令了。一直记得要stop,结果写成这个了)

还有最常用的:vagrant ssh 登录主机。

本文只做概念阐述,知道Vagrant是什么,就是一个好的开始。

更多Vagrant Demo内容查看学委之前的Vagrant笔记。

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
创作不易,请多多支持,点赞收藏支持学委吧!

补充链接:

https://blog.scottlowe.org/2016/09/15/using-vagrant-with-aws/

Docker玩腻了,不妨试试用Vagrant相关推荐

  1. 担心你的文章图片被盗?试试用python加水印

    引言 你是不是担心,辛辛苦苦做的图表被盗用? 试试用python加上你的专属水印,让盗版无所遁形. 只需几行代码,比用ps软件操作更简单.更快捷. 方式一:叠加文字水印 最简单的一种方式是,在图片上绘 ...

  2. c++日志库实战——spdlog,是不是感觉log4cxx有点笨重,不妨试一试spdlog

    c++日志库实战--spdlog,是不是感觉log4cxx有点笨重,不妨试一试spdlog 背景 更新记录 spdlog是什么 spdlog快速入门 编译 CMake手动方式 Vcpkg全自动方式(推 ...

  3. 疫情在家游戏玩腻了?那就一起来开发H5小游戏吧

    前提:游戏玩腻了?作为一名合格的程序员,应该自己开发小游戏来玩,玩腻了,自己就再去开发个游戏,利用这一特点实现永动机.既可以学习,也可以娱乐. 本次开发的是贪吃蛇小游戏.使用技术:html.css.原 ...

  4. rust腐蚀网页游戏_玩腻了我的世界?这15款沙盒生存类游戏了解一下

    好啦我知道,玩腻<我的世界>那是肯定不可能的,但是下面这些游戏也是很不错的,有空的时候不如来换换口味啦! 泰拉瑞亚 这款游戏和麦块很相似,不过画面是2D的不怕头晕,游戏内增加了RPG要素, ...

  5. Docker玩法 — 镜像优化之旅

    Docker玩法 - 镜像优化之旅 开门见山地说,如果你已经来着这里,肯定发现了这个问题,我们在做镜像的时候,仅仅几K的源文件打出来居然百兆以上!更有甚者能到1个G,这无疑在后期运用时产生较大影响,所 ...

  6. 【黑科技回忆童年】用Docker玩转神奇宝贝!

    [黑科技回忆童年]用Docker玩转神奇宝贝! 这个画面怀念吗?现在就教你如何用docker玩转神奇宝贝! 项目实战 原项目简介 weplay是一个socket.io库的展示项目,你可以在socket ...

  7. Docker玩法 — 小试牛刀

    Docker玩法 - 小试牛刀 玩转第零步,Docker is Who 众所周知,在服务发部后需要部署到服务器上,而最常见服务器系统有 windows 和 Linux 两大阵营,根据服务的需求选择合适 ...

  8. “找个心动的人就辣么难嘛 _ ” 别灰心,试试用了AI的Tinder

    原作 Sarah Perez Root 编译自 TechCrunch 量子位 出品 | 公众号 QbitAI 听说攻城狮们的世界里有复杂又微妙的鄙视链.C语言攻城狮看不起写C++,写C++的看不起Ja ...

  9. 《和平精英》玩腻了?今年最火的吃鸡游戏《永劫无间》正式上线!

    <永劫无间>什么时候上线?2021年已经过去一大半了,要说今年最火的游戏毫无疑问,非网易的武侠版吃鸡网易<永劫无间>莫属.这游戏之前已经在Steam上线,并且将在7月8日也就是 ...

最新文章

  1. Linux内核中锁机制之完成量、互斥量
  2. Verilog中生成语句(generate)的用法
  3. netty 之 telnet HelloWorld 详解
  4. 计算机三级网络接口,计算机三级网络技术操作系统是怎样的?
  5. php实现电话拨打,jquery mobile实现拨打电话功能的几种方法_jquery
  6. java 选中指定文件_Java如何打开一个文件夹并选中指定文件
  7. PHP实例方法,PHP实例方法有哪些例子
  8. 服务器搭建docker环境的过程
  9. reverse函数中的begin和end迭代器
  10. 天天生鲜Django项目
  11. OPENCV 实现png绘制,alpha通道叠加。
  12. 计算机硬盘容量1t,硬盘1tb等于多少gb 硬盘容量计算公式
  13. Coinbase、BlockFi相继开启上市准备工作,但SEC准备好了吗?
  14. GEE拼接字符串出错,原因是忘了加getInfo()
  15. 小程序生命周期_微信小程序开发日记App生命周期
  16. Address already in use: JVM_Bind:8080 关于XXX端口被占用问题的解决
  17. KOG注释[Ubuntu 15.10系统]
  18. Python之爬虫和数据小解析
  19. PHP抓取百度搜索结果页面的【相关搜索词】并存储
  20. 鸿蒙系统应用(HarmonyOS)2

热门文章

  1. Linux系统升级sudo版本来解决本地用户获得 root 权限
  2. 批训练、注意力模型及其声纹分割应用,谷歌三篇论文揭示其声纹识别技术原理
  3. 台积电谈2nm的实现方式
  4. qcc514x-qcc304x调试笔记-tone
  5. spark读写Doris实现及Doris文档更新
  6. 几种常见web 容器比较
  7. 360html收藏夹,360极速浏览器收藏夹在什么地方?
  8. 实验一 验证74LS181运算和逻辑功能
  9. 股权转让合法避税就用这几招
  10. yarn和npm区别