什么是Vagrant ?
Vagrant 是一个对虚拟环境管理的工具,必须借助virtualbox/vm 才能使用。vagrant 英译流浪汉,可以方便的把某个虚拟开发环境搬运到另外一台机器中。
如何使用Vagrant?
假设已经用virtualbox建了一个开发环境。比如LAMP。现在想要在另外一台机器上重新建立一个一模一样的开发环境。
初始化vagrant
vagrant init
生成Vagrantfile,Vagrantfile是一个配置文件,可以配置登录虚拟机方式password/ssh,虚拟机ip,将要执行的容器文件box等信息。
把当前实例化了的虚拟环境导出成box-name.box, 这个box可能有几十G,这是已经压缩过的容器盒子,手动压缩也差不多大小。
导出之后Vagrantfile将会有配置config.vm.box = "box-name"
vagrant package --output box-name.box
开发人员拷贝box及Vagrantfile到本地,本地需要已经安装vm,在Vagrantfile所在目录下运行vagrant up即可在本地生成刚才的虚拟机环境。需要等待几分钟。
vagrant up
登录虚拟机,ssh方式
vagrant ssh
重启虚拟机
vagrant reload
关闭虚拟机,并退出
vagrant halt
销毁虚拟机实例,实例化的虚拟环境占内存很大,经常不用可以销毁。
vagrant destory
如果本地有多个box,修改Vagrantfile中绑定的box,vagrant up 可以随时进入另外一个虚拟机环境,比如LNMP
vagrant box add box_name path-to-box
仓库
从公有的仓库中直接拉取box,然后启动环境。比如把ubuntu14.04拉取到本地。
修改Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
end
然后启动
vagrant up
Vagrant 和 Docker 有什么区别 ?
参考什么是Docker?
简单来说,Docker比Vagrant强大很多,docker包含vagrant的功能,docker也可以做容器实例导出的工作,但是docker可以导出镜像文件到本地,通过镜像文件生成虚拟容器实例。镜像文件可能也就几十兆,Docker更加轻量级,Docker不依赖vm。把线上环境安装在vm里面是不现实的。docker参数多,更加灵活,在线上部署服务器集群也是很方便的。
比如docker 启动一个ubuntu18的镜像。
docker run ubuntu:18.04
vagrant简单易上手。命令简单,也非常适用于小团队内部开发。
网友评论