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. DG gap sequence修复一例

    环境:Oracle 11.2.0.4 DG 故障现象: 客户在备库告警日志中发现GAP sequence提示信息: Mon Nov 21 09:53:29 2016 Media Recovery Wa ...

  2. HTML基本元素(三)

    1.HTML特殊字符 一些字符在HTML中拥有特殊的含义,比如小于号(<)和大于号(>)用于定义HTML标签.如果我们希望浏览器正确地显示这些字符,我们必须在HTML源码中插入字符实体. ...

  3. JS魔法堂:不完全国际化&本地化手册 之 拓展篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  4. Effective前端5:减少前端代码耦合

    什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天.由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: ...

  5. 怎样写一个webpack loader

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...

  6. Oracle 内置sql函数大全

    F.1字符函数--返回字符值 这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据 ...

  7. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(二)

    前言 (二)建立虚拟网络环境,以及域控和DNS服务器   1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...

  8. FlashBuilder项目环境配置

    一 .安装Flash Builder 1.  修改host文件 1.1 找到host文件,复制到桌面修改. 在"C:\Windows\System32\drivers\etc"文件 ...

  9. 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  10. 遍历map的四种方法

    方法一  在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用.注意:for-each循环在Java 5中被引入所以该方法只能应用于j ...