场景:

1.比如你使用windows系统,想要学习一下linux系统,就可以使用virtualbox + vagrant 快速搭建一个linux系统。
2.比如你需要在本地搭建开发测试环境,也可以使用vagrant 快速拉取一个centos的box搭建一个干净的开发测试环境。 并且可以和本机同步共享目录,就可以在本机上面进行项目开发,在干净的linux环境下面运行项目。

Virtualbox下载: https://www.virtualbox.org/
Vagrant下载: https://www.vagrantup.com/

安装好vagrant之后可以使用终端查看一下已经有的box列表

vagrant box list

可以去网站搜索一下需要的box(类似docker里面的镜象), vagrant box: https://app.vagrantup.com/boxes/search

安装box(搜索到的box的名称,例如centos/7)

vagrant box add centos/7

选择你使用的虚拟机软件的类型,比如 virtualbox 后,开始下载box

(如果下载比较慢,也可以复制下载地址使用迅雷等进下载)

如果你使用了迅雷等下载好了一个box,需要手动安装一下下载的box(在上一步用命令行工具下载的跳过此步骤):

进入到下载好的box的目录执行

vagrant box add centos-test virtualbox.box(下载的box的名字)

删除一个box

vagrant box remove centos-test

进入到项目目录初始化一个vagrant

vagrant init centos/7

虚拟机网络设置

会自动生成一个Vagrantfile文件
打开这个文件可以看到网络配置,去掉前面的#号

......
# config.vm.network "private_network", ip: "192.168.33.10"
# config.vm.network "public_network"
......

共享的目录设置

默认情况下,vagrant 会共享我们的项目的目录,也就是,在项目的虚拟机里面,会有一个目录跟我们的项目的目录是同步的。这样我们可以在本地的电脑上,去编辑项目的文件,然后在虚拟机,可以运行它们。

配置共享目录

如果你有额外的目录要跟虚拟机同步的话,可以通过修改 Vagrantfile 这个文件,去添加这些额外的共享目录 …
找到 config.vm.synced_folder … 虚拟机的同步目录的相关配置 …
去掉这行代码前面的注释符号 … 可以让这行代码起作用。
这个配置后面有两个参数,第一个参数是主机上的目录,可以使用绝对的位置,也可以使用相对的位置,如果是相对位置,是相对于项目根目录的位置,也就是相对于 Vagrantfile 这个文件所在的目录的位置。两个参数之间是一个逗号,第二个参数是在虚拟机上的目录,如果你设置的目录在虚拟机上不存在,Vagrant 在启动虚拟机的时候,会自动去创建这个目录。

/vagrant_data ,表示根目录下面的 vagrant_data 这个目录 …

config.vm.synced_folder "app", "/vagrant"

另外,还有一些选项,输入一个逗号 … 然后把 create,设置成 true … 这样电脑上的这个同步的目录不存在的话,就会创建一个 ..

再输入一个逗号 … 我们还可以设置一下这个目录在虚拟机上的拥有者,还有所属的群组 …

......
config.vm.synced_folder "../data", "/vagrant_data",
create: true, owner: "root", group: "root"
......

例:window下使用nfs设置共享目录双向同步文件

安装agrant-winnfsd插件

vagrant plugin install vagrant-winnfsd

修改Vagrantfile文件,映射项目根目录的上级www目录到虚拟机的www/wwwroot目录(默认的项目目录已经是共享到虚拟机的vagrant目录上了,另外增加的共享目录最好不要放到项目初始化的目录中,不然文件也会同步到虚拟机的vagrant目录上,会重复同步了一份)

Vagrant.configure("2") do |config|
  #winfsd
  config.winnfsd.logging = "on"
  config.winnfsd.uid = 1
  config.winnfsd.gid = 1
  config.vm.synced_folder "../www", "/www/wwwroot", type: "nfs"

保存之后启动vagrant(重启虚拟机是vagrant reload )

其它设置可以看官方文档:https://www.vagrantup.com/docs/virtualbox/configuration.html

修改内存和CPU

config.vm.provider "virtualbox" do |v|
  v.memory = 2024
  v.cpus = 2
end
vagrant up
vagrant status

登录到这个虚拟机

vagrant ssh

要换到root用户,密码是vagrant

su root

查看一下ip地址

ip addr

可以看到192.168.33.10是一个私有网络,还有一个共有网络的IP,可以用终端ping一下

管理虚拟机

退出

exit

停止虚拟机(会关掉虚拟机)

vagrant halt

暂停虚拟机(会保存虚拟机状态)

vagrant suspend

启动虚拟机

vagrant up

销毁一个虚拟机

vagrant destroy

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。