安装
Windows下开发最好装个虚拟机
这里选择virtualbox(虚拟机) + vagrant(虚拟机管理工具) + Centos7(系统)
先去下载安装包
https://www.virtualbox.org/wi...
https://www.vagrantup.com/dow...
建议安装1.9.7版本 我之前装了个1.9.3 各种坑
安装完之后新建个目录例如dev
到dev目录下执行
$ vagrant init
这样就生成了Vagrantfile
然后
$ vagrant init centos/7
$ vagrant up --provider virtualbox
这样会直接从镜像下载,比较慢
还是建议从官网下载box,然后从本地加载
官网地址 https://app.vagrantup.com/box...
$ vagrant box add centos7 D:/boxes/centos-7.1-x86_64.box
$ vagrant init centos7
$ vagrant up
配置
Vagrantfile的基本配置
Vagrant.configure("2") do |config|
config.vm.box = "centos7" #box的名字
config.vm.network "forwarded_port", guest: 80, host: 8088 #映射端口 主机8088到虚拟机80
config.vm.network :"public_network",ip: "192.168.10.216"#虚拟机外网可以访问,局域网IP
config.vm.synced_folder "./data", "/vagrant_data" #共享目录 /vagrant_data是虚拟机中的目录
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096" #分配内存
end
end
如果用auth key登录总是失败的话可以直接用账号密码登录
Vagrant.configure("2") do |config|
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false
end
配置好以后启动
Windows下面是不能直接SSH连接的,其他系统可以用$ vagrant ssh
直接连
Windows下就用SSH工具即可
在Windows命令行里面输入 $ vagrant ssh
可以显示 SSH的信息
用生成的私钥或者密码登录即可
如果在启动的过程中出现
VT-x is disabled in the BIOS for all CPU
VT-x就是CPU虚拟化,重启进入BIOS开启即可
另外需要
安装 VirtualBox Guest Additions 在UI界面下可以找到
插件 https://github.com/dotless-de...
虚拟机联网一共有三种方式
较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:
config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。
如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:
config.vm.network :private_network, ip: "192.168.1.104"
192.168.1.104表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可
如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:
config.vm.network :public_network, ip: "192.168.1.25"
这里需要注意,有可能出现网络配置完成以后安装nginx还是不能访问虚拟机的情况,可以考虑关闭防火墙试试
systemctl stop firewalld.service
常用命令
虚拟机关机:vagrant halt
虚拟机挂起:vagrant suspend
虚拟机恢复:vagrant resume
删除虚拟机:vagrant destory
查看虚拟机运行状态: vagrant status
重启虚拟机: vagrant reload
打包分发: vagrant package
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。