docker玩腻了,不妨试试用vagrant(代码片段)

雷学委 雷学委     2022-12-18     453

关键词:

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/

一键安装服务器中的超跑nginx!让网站性能起飞,不花冤枉钱!(代码片段)

学委之前写过Docker玩腻了,不妨试试用Vagrant和Vagrant使用笔记最近Nginx很火(这玩意很多年了),学委16年就开始用了,这里总结准备了一键安装的方法,送给大家,学会不用花冤枉钱买更多强劲服务器... 查看详情

一键安装服务器中的超跑nginx!让网站性能起飞,不花冤枉钱!(代码片段)

学委之前写过Docker玩腻了,不妨试试用Vagrant和Vagrant使用笔记最近Nginx很火(这玩意很多年了),学委16年就开始用了,这里总结准备了一键安装的方法,送给大家,学会不用花冤枉钱买更多强劲服务器... 查看详情

还在手动部署springboot项目?不妨试试它,让你部署项目飞起来!

目录docker介绍安装dockerUbuntu安装dockerCentOS安装docker通过脚本安装拉取java环境创建springboot项目打包springboot到dockerdocker查看容器的日志查看log4j2输出问文件日志docker介绍Docker是一个开源的应用容器引擎,让开发者可以打包他们的应... 查看详情

vagrant里面不能运行docker,怎么回事

 以下内容均出自Vagrant作者(MitchellHashimoto)与Docker作者(SolomonHykes)在stackoverflow上面一个问题讨论。在这个问题中,双方阐述了vagrant和docker的特点和使用范围,对于深入理解vagrant和docker很有意义,因此笔者翻译出来,以供大家讨... 查看详情

vagrant部署开发环境(windows环境)(代码片段)

一、vagrant 工作原理 二、vagrant与docker的区别 vagrant是用来管虚拟机的,而docker是管容器的 docker的启动速度当然是无可比拟的,而vagrant当然不是要很docker比启动速度的,vagrant就是管虚拟机的,虚拟机与容器的区... 查看详情

vagrant+docker:开发环境快速搭建(代码片段)

快速搭建以下的环境:目录VirtualBoxVagrantdockerMySQLredisVirtualBoxVM环境Vagrant成品镜像$vagrantboxaddcentos-7./centos-7.0-x86_64.box$vagrantinitcentos-7$vagrantup$vagrantssh修改端口管理员$suroot#密码vagrant$whoami入门案例:https://www.cnblogs.com/lawsssscat/p/1267647... 查看详情

docker使用1(代码片段)

...是要安装一个centos7,然后在centos7上安装docker?如果搞不定vagrant+virtualbox的方式,也可以直接使用VM搭建一个centos7?或者你可以直接使用一台云服务器,上面安装了centos7?毕竟我们的目的只是为了得到一个centos7的机器,所以不必花... 查看详情

使用vagrant搭建k8s节点二(代码片段)

一、所有节点安装DockerKubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。1、安装docker1.1)删除原有的dockersudoyumremovedocker\\docker-client\\docker-client-latest\\docker-common\\docker-latest\\docker-lat 查看详情

确定安装了哪些netframework版本

 以下内容均出自Vagrant作者(MitchellHashimoto)与Docker作者(SolomonHykes)在stackoverflow上面一个问题讨论。在这个问题中,双方阐述了vagrant和docker的特点和使用范围,对于深入理解vagrant和docker很有意义,因此笔者翻译出来,以供大家讨... 查看详情

elasticsearch:如何在docker容器中安装elasticstack(代码片段)

...er容器中。对于还没有UbuntuOS的开发者来说,我将使用Vagrant来安装UbuntuOS。如果你从来还没有安装过Vagrant,请参照我之前的教程“Vagrant入门教程”来进行学习。创建UbuntuOS我们使用Vagrant来创建Ubuntu。我们首先在自己的电... 查看详情

elasticsearch:如何在docker容器中安装elasticstack(代码片段)

...er容器中。对于还没有UbuntuOS的开发者来说,我将使用Vagrant来安装UbuntuOS。如果你从来还没有安装过Vagrant,请参照我之前的教程“Vagrant入门教程”来进行学习。创建UbuntuOS我们使用Vagrant来创建Ubuntu。我们首先在自己的电... 查看详情

vagrant实战(代码片段)

...一直在Linux上做开发,Docker用的比较多,最近要用Vagrant搭建Linux开发环境,所以用了一下,整理一些资料。Vagrant其实是一个可以方便设置使用虚拟机的工具,底层支持VirtualBox和VMWare,我的Windows机器上已经... 查看详情

前端如何开始深度学习,那不妨试试jax(代码片段)

一、简介在深度学习方面,TensorFlow和PyTorch是绝对的王者。但是,但除了这两个框架之外,一些新生的框架也不容小觑,比如谷歌推出的JAX深度学习框架。1.1、快速发展的JAXJAX是一个用于高性能数值计算的Python库&#... 查看详情

docker学习(03)--安装部署2

Vagrant与Docker对比 Vagrant和Docker都是虚拟化技术。Vagrant是基于Virtualbox的虚拟机来构建你的开发环境。Docker则是基于LXC(LXC)轻量级容器虚拟技术。虚拟机之于容器虚拟技术相当于进程和线程。虚拟机内可以包含很多容器,正如... 查看详情

使用vagrant搭建k8s节点二(代码片段)

一、所有节点安装DockerKubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。1、安装docker1.1)删除原有的dockersudoyumremovedocker\\docker-client\\docker-client-latest\\docker-common\\docker-latest\\docker-latest-logrotate\\docker-logrotate\\docker-... 查看详情

这10个超实用的python函数,你不妨试试!(代码片段)

欢迎关注,专注Python、数据分析、数据挖掘、好玩工具!大家好,今天我要推荐10个超实用的Python内置函数,而且简单实用,收藏学习或者复习,简直舒服。喜欢技术交流的朋友,文末加入我们的学习... 查看详情

调bug半天调不出来?不妨试试换一个编译器?

**DEV-C++毁我青春对可以AC的代码debug了半天结果是编译器的问题 查看详情

Vagrant 与 Docker 中的隔离

】Vagrant与Docker中的隔离【英文标题】:IsolationinVagrantvs.Docker【发布时间】:2014-09-0206:31:58【问题描述】:为什么当Vagrant运行一个新的操作系统并隔离其中的所有内容时,Vagrant不被视为隔离,而Docker是?当有人说:“如果您正在... 查看详情