安装box
需要安装virtual box
和 vagrant
去官网找自己电脑所对应的版本即可
然后在终端执行:
vagrant box add 发布者/系统名称
这样会通过vagrantcloud上来根据 发布者/系统名
称来下载box
通常这个box
体积会很大,所以可以直接复制box的URL来用第三方多线程下载工具来下载,比如迅雷,下到本地之后 再执行下面语句
vagrant box add 发布者/系统名称(自己随便起也可) 本地box所在路径(/download/abc.box)
这是如果box添加成功之后,使用vagrant box list
可以查看目前已经添加的box列表
接下来就是要初始化box
vagrant init 发布者/系统名称
当你看当前目录下有个 Vagrantfile
文件就说明初始化成功了。
每个项目对应只有一个Vagrantfile
, 当你允许vagrant
相关命令的时候它会自动从当前目录开始,逐级往上级目录查找Vagrantfile
,直道找到为止。
/home/mitchellh/projects/foo/Vagrantfile
/home/mitchellh/projects/Vagrantfile
/home/mitchellh/Vagrantfile
/home/Vagrantfile
/Vagrantfile
现在就可以启动虚拟机了:
vagrant up
然后使用vagrant ssh
通过ssh来链接到虚拟机,默认是vagrant用户
vagrant status
查看虚拟机的状态 vagrant halt
关机 vagrant up
启动虚拟机 vagrant suspend
暂停虚拟机,这时虚拟机的内存,配置信息会暂存至硬盘 vagrant resume
恢复虚拟机 vagrant reload
重启虚拟机 vagrant destroy
销毁当前虚拟机
如果想配置多个同步目录,那么请修改文件Vagrantfile
找到
config.vm.synced_folder "../data(本地)", "/vagrant_data(虚拟机)",
create: true(如果不存在则自动创建), owner: "root", group: "root"
这样我们重启虚拟机,就会看到提示信息里有我们所同步目录的列表了
vagrant 提供了三种类型的网络:
为虚拟机指定一个IP地址,本机通过这个IP地址来访问虚拟机
缺点:只能本机访问
打开Vagrantfile
找到config.vm.network "private_network", ip: "192.168.33.10"
, 打开注释重启虚拟机即可
比如配置在路由器配置好的一个网络里面,该网络的其他设备也可以访问虚拟机
打开Vagrantfile
找到config.vm.network "public_network"
, 打开注释重启虚拟机即可
比如配置8080端口转发到虚拟机的80端口
缺点:手工配置,不灵活
首先得清理一个文件,删除它:
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
否则使用的时候会出现点问题
然后进行打包:
vagrant package
打包成功之后就会在当前目录生成一个package.box
的文件
注意,如果当前已有虚拟机了,那么新建一个目录,在新建目录中初始化,否则会和之前的Vagrantfile冲突
如果想删除一个box:
vagrant box remove box名称
打开Vagrantfile
添加下面代码
config.vm.define "development" do |development|
里面配置该主机选项
development.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "production" do |production|
production.vm.network "private_network", ip: "192.168.33.22"
end
原文:http://my.oschina.net/guanyue/blog/390287