1.安装VirtualBox

VirtualBox下载地址 免费小巧非常适用,根据自己机器系统选择下载包

VirtualBox 安装包

2.安装并使用Vagrant

1)Vagrant下载地址 选择下载包

根据提示安装,用来管理各种系统镜像非常方便

安装完成后,在终端输入

vagrant -v

提示显示vagrant版本即安装成功并可使用,如图:

查看vagrant是否安装成功

2) box系统镜像下载地址 下载Vagrant官方封装好的系统镜像

因为之前比较熟悉“red hat”,所以选择了目前最新版的centos7,这是我第一次使用centox,然而就开始了坑自己的路

我使用的是centos7精简版

3)添加下载好的box系统镜像到Vagrant

找到自己2)中下载的box的存放路径,在终端输入

vagrant box add centos7 /Users/apple/Downloads/centos7.box

centos7 是给这个box系统镜像取得名字,想叫什么就是什么,就是这么自由!!!

/Users/apple/Downloads/centos7.box 是box系统镜像的存放路径,这个是我自己的路径,你要用你自己的哟!!!

这样就添加完成咯

3.配置开发环境

1)创建开发目录

cd ~/Desktop        # 切换目录

mkdir WebTest      #创建文件夹

cd WebTest           # 切换目录

2)初始化开发环境

在终端中输入

vagrant init centos7         #初始化

初始化开发环境成功

3)启动开发环境

在终端中输入

vagrant up        # 启动环境

然后就只有等待……

反正我是等来了“启动失败”,显示结果如图:

失败原因:找不到共享目录

启动失败

解决办法:

vagrant ssh      #进入虚拟机

sudo /etc/init.d/vboxadd setup     #此时在centos7中执行

执行成功

exit      #退出虚拟机

vagrant reload     #重新启动环境

重新启动环境成功

共享目录:~/Desktop/WebTest 目录对应虚拟机中的目录是 /vagrant

查看本机 ~/Desktop/WebTest 目录中 Vagrantfile 文件,我暂时只关心下面几个数据

config.vm.box = "centos7"        #添加box镜像到vagrant时取得名字

config.vm.network "private_network", ip: "192.168.33.10"        #虚拟机中系统的ip

vb.memory = "1024"            #为虚拟机中系统分配的内存大小

4.检测网络环境

从本机访问centos7:ping 192.168.33.10

正常

从centos7访问本机:ping 192.168.9.31

vagrant ssh      #登录到centos

cd /vagrant      #切换至共享目录

正常

看起来一切还ok!

但是,但是,但是……浏览器不可访问ip,这可难倒我了,完全不知道该怎么查问题,请教有文化的小伙纸,得真经,存在的原因:

1.http服务是否开启

2.防火墙状态

一步步解决问题……

首先安装http服务

sudo yum install httpd

启动http服务

sudo systemctl start httpd.service

设置http服务状态

sudo systemctl enable httpd

查看http服务的状态

sudo systemctl list-unit-files | grep enabled

检测防火墙状态,默认状态下是开启的,既然centos7改用了firewalld,那就用这个,不去深究iptables了

sudo firewall-cmd --stat

指定永久性开放http端口

sudo firewall-cmd --permanent --zone=public --add-service=http

查看80端口是否开放

sudo iptables -L -n | grep 21

为了使设定状态生效,重启服务器

sudo systemctl restart firewalld

至此http和防火墙设置完成

见证奇迹的时刻,在本机打开浏览器,输入虚拟机系统设定的ip地址和Apache服务的端口号80,我这里设置的是:

192.168.33.10:80

5.操作虚拟机

操作虚拟机时,必须进入刚刚建立的目录中去,这个目录中必须含有init命令建立的Vagrantfile文件。常用命令有

$ vagrant init  # 初始化
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机

6.共享文件夹

通过Vagrant建立的虚拟机和Mac共享文件非常容易,虚拟机中/vagrant目录会映射到我们本地虚拟机目录中。例如

cd ~/Documents/Vagrant/Ubuntu
vagrant up
vagrant ssh
cd /vagrant
ls

这个时候,我们会看到,这里显示的文件和~/Documents/Vagrant/Ubuntu下是一样的。

7.共享Box

如果只有上述功能的话,那么Vagrant的作用就不是那么杀手级了。通过命令

vagrant package

可以将一个虚拟机打包成Box,供别人使用。别人只要用打包的box来创建一个虚拟机即可,例如

vagrant box add myubuntu ~/Documents/Vagrant/Ubunutu/ubunut.box

Mac OSX+VirtualBox+Vagrant+CentOS初体验的更多相关文章

  1. QT在Mac OS上编译运行初体验

    QT是一个跨平台的框架,支持PC端(Windows.Linux和Mac OS)以及移动端(Android和IOS),之前的开发大都在Windows或者Ubuntu上,考虑到项目多平台支持性,本文对Ma ...

  2. CentOS 初体验三: Yum 安装、卸载软件

    一:Yum 简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指 ...

  3. CentOS 初体验十四:阿里云安装Gitlab

    网址:https://about.gitlab.com/install/#centos-7 https://blog.csdn.net/zhaoyanjun6/article/details/7914 ...

  4. 转 CentOS 初体验十四:阿里云安装Gitlab

        原文 https://blog.csdn.net/zhaoyanjun6/article/details/79144175 非Unix操作系统(Windows) GitLab是专为Unix操作 ...

  5. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  6. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  7. Mac下nodeJS初体验

    Mac下nodeJS初体验 这两天博主出门在外,抽空体验一下大名鼎鼎的node 安装 brew install node 安装测试 $ node -v v8.4.0 运行本地脚本 用文本编辑器编辑一段 ...

  8. Docker深入浅出系列 | 容器初体验

    目录 Docker深入浅出系列 | 容器初体验 教程目标 预备工作 容器与虚拟化技术 什么是Docker 为什么要用Docker 事例 什么是容器镜像和容器 容器与虚拟机的区别 Vagrant与Doc ...

  9. K8S Kubernetes 简单介绍 转自 http://time-track.cn/kubernetes-trial.html Kubernetes初体验

    这段时间学习了一下 git jenkins docker  最近也在看  Kubernetes  感觉写得很赞  也是对自己对于K8S 有了进一步得理解  感谢 倪 大神得Blog 也希望看到这篇Bl ...

随机推荐

  1. 从xfire谈WebService接口化编程

    前段时间有博友在看我的博文<WebService入门案例>后,发邮件问我关于WebService 接口在java中的开发,以及在实际生产环境中的应用.想想自己入职也有一段时间了,似乎也该总 ...

  2. 你真的会玩SQL吗?透视转换的艺术

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  3. MessageBox.Show()的各种用法

    [函数] <整型> MessageBox(<字符串> Text, <字符串> Title, <整型> nType,MessageBoxIcon); [函 ...

  4. winForm连接数据库(sqlserver2005)

    帮同学搞个课程设计winform连接sqlserver2005 具体方法: .添加App.config文件 2.在App.config文件中添加节点 <?xml version="1. ...

  5. EF里单个实体的增查改删以及主从表关联数据的各种增删 改查

    本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...

  6. PHP如何实现网址伪静态

    Apache的 mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态. 主要步骤如下: 1.检测Apache是否开启mod_rewrite功能     可以通过php提供 ...

  7. filter 过滤器(监听)

    Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, ...

  8. Backbone中的model和collection在做save或者create操作时, 如何选择用POST还是PUT方法 ?

    Model和Collection和后台的WEB server进行数据同步非常方便, 都只需要在实行里面添加一url就可以了,backbone会在model进行save或者collection进行cre ...

  9. 浏览器对localstorage的支持情况以及localstorage在saas系统中的应用实践思考

    首先,还是要说,任何一种新特性的引入,通常有着其特有的场景和解决的目标需求,localstorage也一样.在我们的应用场景中,主要在金融业务服务的saas系统.其中涉及很多更改频率很多的元数据的客户 ...

  10. iOS:GCD理解1(同步-异步、串行-并行)

    1.并行-异步(ST1与ST2抢占资源) 1-1).获取 并行(全局)队列 ,DISPATCH_QUEUE_PRIORITY_DEFAULT 为默认优先级. dispatch_queue_t queu ...