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. xDebug + webgrind 对 php 程序进行性能分析

    环境 macOs Sierra php 7.0.8 MAMP Pro 集成环境 背景 最近有一个需要在微信朋友圈上线的 h5,本人做了一个抽奖的接口,也没多想,直接上 php ci(CodeIgnit ...

  2. CentOS7下mysql5.6修改默认编码

    参考原文教程:Centos7下修改mysql5.6编码方式 解决网站中文显示问号 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操 ...

  3. ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览

    原文:Overview of ASP.NET Core MVC 作者:Steve Smith 翻译:张海龙(jiechen) 校对:高嵩 ASP.NET Core MVC 是使用模型-视图-控制器(M ...

  4. 单链表的C++实现(采用模板类)

    采用模板类实现的好处是,不用拘泥于特定的数据类型.就像活字印刷术,制定好模板,就可以批量印刷,比手抄要强多少倍! 此处不具体介绍泛型编程,还是着重叙述链表的定义和相关操作.  链表结构定义 定义单链表 ...

  5. WebApi安全性 使用TOKEN+签名验证

    首先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题, ...

  6. 使用Setup Factory安装包制作工具制作安装包

    在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表.数据库等额外的操作,不过 ...

  7. autofac 组件的实例范围

    实例范围决定如何在请求之间共享服务. 原文地址:http://docs.autofac.org/en/latest/lifetime/instance-scope.html 每个依赖一个实例 使用这个 ...

  8. Bootstrap之导航条

    基本导航条 <!-- navbar-inverse相反颜色风格 --> <!-- navbar-static-top去除圆角 --> <!-- navbar-fixed- ...

  9. JAVA-堆区,栈区,方法区。

    转载:http://blog.csdn.net/wangxin1982314/article/details/50293241 堆区: 村线程操纵的数据(对象形式存放) 1 存储的全部是对象,每个对象 ...

  10. 安装cocoapods以及更新cocoapods

    安装 1.设置ruby的软件源 这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下: gem sources -l #(查看当前 ...