-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathCreate-Virtual-Machine-By-Vagrant.html
More file actions
1 lines (1 loc) · 35.7 KB
/
Create-Virtual-Machine-By-Vagrant.html
File metadata and controls
1 lines (1 loc) · 35.7 KB
1
<!-- build time:Thu Jul 04 2019 10:08:25 GMT+0800 (GMT+08:00) --><!doctype html><html class="theme-next mist" lang="zh-Hans"><head><meta name="generator" content="Hexo 3.8.0"><meta name="google-site-verification" content="7Tau9WyVgxnsEY9oYedu9g0U6_8akOX3wiKbaYcrg9A"><meta name="baidu-site-verification" content="EVwLiaxdxX"><link href="/css/animsition.min.css" rel="stylesheet" type="text/css"><link href="/css/xps13.css" rel="stylesheet" type="text/css"><link href="/css/message.css" rel="stylesheet" type="text/css"><script type="text/javascript" src="/js/jquery-1.11.3.min.js"></script><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css"><link href="/css/main.css?v=5.1.1" rel="stylesheet" type="text/css"><meta name="keywords" content="Vagrant,"><link rel="alternate" href="/atom.xml" title="MrBird" type="application/atom+xml"><link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?v=5.1.1"><meta name="description" content="Vagrant是一款由HashiCorp公司提供的,用于快速构建虚拟机环境的软件。本节我们将使用Vagrant结合Oracle VM VirtualBox快速地在win10环境下构建CentOS7虚拟机。在此之前需要先安装好 Vagrant 和 VirtualBox。"><meta name="keywords" content="Vagrant"><meta property="og:type" content="article"><meta property="og:title" content="使用Vagrant创建CentOS虚拟机"><meta property="og:url" content="http://mrbird.cc/Create-Virtual-Machine-By-Vagrant.html"><meta property="og:site_name" content="MrBird"><meta property="og:description" content="Vagrant是一款由HashiCorp公司提供的,用于快速构建虚拟机环境的软件。本节我们将使用Vagrant结合Oracle VM VirtualBox快速地在win10环境下构建CentOS7虚拟机。在此之前需要先安装好 Vagrant 和 VirtualBox。"><meta property="og:locale" content="zh-Hans"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328162307.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328201613.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328202035.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328202353.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328203659.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328203846.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328204151.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328210130.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328210245.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328210316.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328210643.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328210742.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328211115.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328211400.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328212914.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328214455.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328222933.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190328231719.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329203440.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329203610.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329203731.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329204536.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329204658.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329204819.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329204921.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329205957.png"><meta property="og:image" content="http://mrbird.cc/img/QQ图片20190329210159.jpg"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329213710.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329213847.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329213928.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329214836.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329215535.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329220045.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329220109.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329220648.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329220747.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329220810.png"><meta property="og:image" content="http://mrbird.cc/img/QQ截图20190329221152.png"><meta property="og:updated_time" content="2019-04-01T02:33:31.805Z"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="使用Vagrant创建CentOS虚拟机"><meta name="twitter:description" content="Vagrant是一款由HashiCorp公司提供的,用于快速构建虚拟机环境的软件。本节我们将使用Vagrant结合Oracle VM VirtualBox快速地在win10环境下构建CentOS7虚拟机。在此之前需要先安装好 Vagrant 和 VirtualBox。"><meta name="twitter:image" content="http://mrbird.cc/img/QQ截图20190328162307.png"><script type="text/javascript" id="hexo.configurations">var NexT=window.NexT||{},CONFIG={root:"/",scheme:"Mist",sidebar:{position:"left",display:"always",offset:12,offset_float:0,b2t:!1,scrollpercent:!1},fancybox:!1,motion:!1}</script><title>使用Vagrant创建CentOS虚拟机 | MrBird</title></head><body ondragstart="return!1" class="animsition" lang="zh-Hans" style="overflow-x:hidden;padding-right:280px"><script type="text/javascript" src="/js/animsition.min.js"></script><script type="text/javascript" src="/js/mo.min.js"></script><script>$("body").animsition({inClass:"fade-in",outClass:"fade-out",inDuration:300,outDuration:300,linkElement:".animsition-link",loading:!0,loadingParentElement:"html",loadingClass:"line-scale-pulse-out",loadingInner:"",timeout:!1,timeoutCountdown:50,onLoadEvent:!0,browser:["animation-duration","-webkit-animation-duration"],overlay:!1,overlayClass:"animsition-overlay-slide",overlayParentElement:"html",transition:function(n){window.location.href=n}})</script><div class="container sidebar-position-left page-post-detail"><div class="headband"></div><header id="header" class="header"><div class="header-inner"><div class="site-brand-wrapper"><div class="site-meta"><link href="https://fonts.font.im/css?family=Merienda" rel="stylesheet"><div class="custom-logo-site-title"><a href="/" class="brand" rel="start"><span class="logo-line-before"><i></i></span> <span class="site-title" style="font-family:Merienda;font-size:1.3rem">MrBird</span> <span class="logo-line-after"><i></i></span></a></div><p class="site-subtitle"></p></div><div class="site-nav-toggle"><button><span class="btn-bar"></span> <span class="btn-bar"></span> <span class="btn-bar"></span></button></div></div><nav class="site-nav"><ul id="menu" class="menu"><li class="menu-item menu-item-home"><a href="/" rel="section">HOME</a></li><li class="menu-item menu-item-archives"><a href="/archives/" rel="section">ARCHIVES</a></li><li class="menu-item menu-item-tags"><a href="/tags/" rel="section">TAGS</a></li><li class="menu-item menu-item-friends"><a href="/friends/" rel="section">FRIENDS</a></li><div class="sidebar-toggle" style="display:none"><div class="sidebar-toggle-line-wrap"><span class="sidebar-toggle-line sidebar-toggle-line-first"></span> <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span> <span class="sidebar-toggle-line sidebar-toggle-line-last"></span></div></div></ul><div class="site-search"><div class="popup search-popup local-search-popup"><div class="local-search-header clearfix"><span class="search-icon"><i class="fa fa-search"></i> </span><span class="popup-btn-close"><i class="fa fa-times-circle"></i></span><div class="local-search-input-wrapper"><input autocomplete="off" placeholder="Search" spellcheck="false" type="text" id="local-search-input"></div></div><div id="local-search-result"></div></div></div></nav></div></header><main id="main" class="main"><div class="main-inner"><div class="content-wrap"><div id="content" class="content"><div id="posts" class="posts-expand"><article class="post post-type-normal" itemscope itemtype="http://schema.org/Article"><link itemprop="mainEntityOfPage" href="http://mrbird.cc/Create-Virtual-Machine-By-Vagrant.html"><span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="name" content="MrBird"><meta itemprop="description" content=""><meta itemprop="image" content="/images/blogImage.jpg"></span><span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="MrBird"></span><header class="post-header"><h1 class="post-title" itemprop="name headline">使用Vagrant创建CentOS虚拟机</h1><div class="post-meta"><span class="post-time"><span class="post-meta-item-icon"><i class="fa fa-calendar-o"></i> </span><span class="post-meta-item-text">Posted on</span> <time title="创建于" itemprop="dateCreated datePublished" datetime="2018-10-10T15:07:19+08:00">2018-10-10 </time></span><span></span></div></header><div class="post-body" itemprop="articleBody"><p>Vagrant是一款由HashiCorp公司提供的,用于快速构建虚拟机环境的软件。本节我们将使用Vagrant结合Oracle VM VirtualBox快速地在win10环境下构建CentOS7虚拟机。在此之前需要先安装好 <a href="https://www.vagrantup.com/downloads.html" target="_blank" rel="noopener">Vagrant</a> 和 <a href="https://www.virtualbox.org/" target="_blank" rel="noopener">VirtualBox</a>。</p><a id="more"></a><h2 id="构建CentOS7虚拟机"><a href="#构建CentOS7虚拟机" class="headerlink" title="构建CentOS7虚拟机"></a>构建CentOS7虚拟机</h2><p>在<a href="https://app.vagrantup.com/boxes/search" target="_blank" rel="noopener">https://app.vagrantup.com/boxes/search</a>下搜索centos:</p><p><img src="img/QQ截图20190328162307.png" alt="QQ截图20190328162307.png"></p><p>然后在win10任意盘符下创建vagrant_vm目录(注意目录最好不要有中文和空格),然后在该目录下使用cmd执行<code>vagrant init centos/7</code>命令:</p><p><img src="img/QQ截图20190328201613.png" alt="QQ截图20190328201613.png"></p><p>然后执行<code>vagrant up</code>启动(这时候最好也打开VirtualBox):</p><p><img src="img/QQ截图20190328202035.png" alt="QQ截图20190328202035.png"></p><p>构建完毕,这时候VirtualBox的列表里会出现一台正在运行的虚拟机:</p><p><img src="img/QQ截图20190328202353.png" alt="QQ截图20190328202353.png"></p><p>这就是我们刚刚通过Vagrant构建的CentOS7虚拟机了。</p><p>如果当你执行<code>vagrant up</code>命令后,虚拟机文件下载非常的慢的话,可以使用下面这种方式来构建:</p><p>在上面的日志中可以找到这么一行:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1902.01/providers/virtualbox.box</span><br></pre></td></tr></table></figure><p></p><p>后面这个URL就是下载地址了,将它黏贴到迅雷等下载工具下载即可。然后将下载好后的xxx.box文件复制到vagrant_vm目录下,并且重命名为centos7.box(删除centos7.box之外的文件和目录,只保留centos7.box一个文件)。</p><p>接着运行<code>vagrant box add -name 'centos/7' centos7.box</code>命令:</p><p><img src="img/QQ截图20190328203659.png" alt="QQ截图20190328203659.png"></p><p>添加成功后执行<code>vagrant init centos/7</code>初始化:</p><p><img src="img/QQ截图20190328203846.png" alt="QQ截图20190328203846.png"></p><p>初始化成功后执行<code>vagrant up</code>启动:</p><p><img src="img/QQ截图20190328204151.png" alt="QQ截图20190328204151.png"></p><p>构建成功,效果和一开始在线下载构建是一样的。</p><h2 id="连接虚拟机"><a href="#连接虚拟机" class="headerlink" title="连接虚拟机"></a>连接虚拟机</h2><p>我们先用<code>vagrant status</code>命令查看一下虚拟机的状态:</p><p><img src="img/QQ截图20190328210130.png" alt="QQ截图20190328210130.png"></p><p>可以看到虚拟机是运行中的状态,我们可以执行<code>vagrant halt</code>来关闭虚拟机:</p><p><img src="img/QQ截图20190328210245.png" alt="QQ截图20190328210245.png"></p><p><img src="img/QQ截图20190328210316.png" alt="QQ截图20190328210316.png"></p><p>启动虚拟机的命令为<code>vagrant up</code>,我们也可以使用<code>vagrant suspend</code>命令来暂停运行中的虚拟机,以保持它的运行状态:</p><p><img src="img/QQ截图20190328210643.png" alt="QQ截图20190328210643.png"></p><p><img src="img/QQ截图20190328210742.png" alt="QQ截图20190328210742.png"></p><p>暂停后可以使用<code>vagrant resume</code>命令来恢复虚拟机:</p><p><img src="img/QQ截图20190328211115.png" alt="QQ截图20190328211115.png"></p><p>连接正在运行中的虚拟机的命令为<code>vagrant ssh</code>:</p><p><img src="img/QQ截图20190328211400.png" alt="QQ截图20190328211400.png"></p><p>重启虚拟机使用的命令为<code>vagrant reload</code>。如果你不想要这个虚拟机的话可以使用<code>vagrant distroy</code>命令进行销毁。</p><h2 id="目录共享"><a href="#目录共享" class="headerlink" title="目录共享"></a>目录共享</h2><p>Vagrant的根目录(就是我们一开始创建的vagrant_vm)和虚拟机里的/vagrant目录是共享的。我们在vagrant_vm目录下新建一个hello.txt文件,内容为hello:</p><p><img src="img/QQ截图20190328212914.png" alt="QQ截图20190328212914.png"></p><p>然后连接虚拟机,查看虚拟机/vagrant目录下有什么内容:</p><p><img src="img/QQ截图20190328214455.png" alt="QQ截图20190328214455.png"></p><p>说明同步成功。</p><p>我们也可以自定义共享路劲,编辑vagrant_vm文件夹下的Vagrantfile文件:</p><p><img src="img/QQ截图20190328222933.png" alt="QQ截图20190328222933.png"></p><p>在这行下面添加如下配置:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">config.vm.synced_folder "./data", "/share", create:true, owner: "root", group: "root"</span><br></pre></td></tr></table></figure><p>这个配置的意思是将当前路径下的data文件夹和虚拟机的/share目录共享,拥有者为root,群组为root,如果路径不存在则创建。</p><p>修改了Vagrantfile文件需要执行 <code>vagrant reload</code>重启。重启后我们在data文件夹下新建一个world.txt文件,然后连接虚拟机看看是否共享成功:</p><p><img src="img/QQ截图20190328231719.png" alt="QQ截图20190328231719.png"></p><p>共享成功!</p><p>在这途中,遇到了如下问题:</p><div class="note danger"><p>Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem “vboxsf” is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was</p><p>…</p><p>The error output from the command was: mount: unknown filesystem type ‘vboxsf’</p></div><p>安装下面这个插件可解决问题:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vagrant plugin install vagrant-vbguest</span><br></pre></td></tr></table></figure><p></p><h2 id="网络配置"><a href="#网络配置" class="headerlink" title="网络配置"></a>网络配置</h2><h3 id="虚拟机私有网络"><a href="#虚拟机私有网络" class="headerlink" title="虚拟机私有网络"></a>虚拟机私有网络</h3><p>在Vagrantfile里打开下面这行配置:</p><p><img src="img/QQ截图20190329203440.png" alt="QQ截图20190329203440.png"></p><p>然后使用命令<code>vagrant reload</code>重启虚拟机,重启后我们使用<code>ping</code>命令看是否可以在windows上访问到这个ip:</p><p><img src="img/QQ截图20190329203610.png" alt="QQ截图20190329203610.png"></p><p>访问成功,连接虚拟机,使用<code>ifconfig</code>查看其IP:</p><p><img src="img/QQ截图20190329203731.png" alt="QQ截图20190329203731.png"></p><p>正是我们刚刚配置的那个IP。</p><h3 id="虚拟机公有网络"><a href="#虚拟机公有网络" class="headerlink" title="虚拟机公有网络"></a>虚拟机公有网络</h3><p>编辑Vagrantfile,将我们刚刚开启的私有网络配置注释,然后开启下面这行配置:</p><p><img src="img/QQ截图20190329204536.png" alt="QQ截图20190329204536.png"></p><p>然后重启虚拟机,重启过程中会然你根据当前网络环境选择:</p><p><img src="img/QQ截图20190329204658.png" alt="QQ截图20190329204658.png"></p><p>因为我电脑连接的是家里wifi所以选择第四个选项,重启好后连接虚拟机,查看其IP:</p><p><img src="img/QQ截图20190329204819.png" alt="QQ截图20190329204819.png"></p><p>新开一个cmd窗口,ping 这个地址看是否能通:</p><p><img src="img/QQ截图20190329204921.png" alt="QQ截图20190329204921.png"></p><p>公有网络和私有网络的区别是,公有网络是无线路由器自动分配的IP地址,并且在同一个wifi网络下的其他设备也是可以访问这个IP地址的。</p><p>比如我们在windows浏览器里输入<a href="http://192.168.28.83/" target="_blank" rel="noopener">http://192.168.28.83/</a>:</p><p><img src="img/QQ截图20190329205957.png" alt="QQ截图20190329205957.png"></p><p>然后让手机连接和电脑相同的wifi网络,并且访问<a href="http://192.168.28.83/" target="_blank" rel="noopener">http://192.168.28.83/</a>:</p><p><img alt="" src="img/QQ图片20190329210159.jpg" style="width:25rem"></p><p>结果说明公有网络配置成功。</p><h2 id="多主机配置"><a href="#多主机配置" class="headerlink" title="多主机配置"></a>多主机配置</h2><p>使用Vagrant可以轻松地创建多台虚拟主机。下面我们开始通过Vagrant来创建两台新的虚拟主机“prod”和“dev”。</p><p>在vagrant_vm目录下新建一个目录,名称为multi,然后通过现有的box来初始化一个Vagrantfile配置:</p><p><img src="img/QQ截图20190329213710.png" alt="QQ截图20190329213710.png"></p><p>接着编辑multi目录下的Vagrantfile文件,新增下面两项配置:</p><p><img src="img/QQ截图20190329213847.png" alt="QQ截图20190329213847.png"></p><p>运行<code>vagrant status</code>:</p><p><img src="img/QQ截图20190329213928.png" alt="QQ截图20190329213928.png"></p><p>可以看到多了两台状态为<code>not created</code>的虚拟机,名称分别为“prod”和“dev”。</p><p>我们可以使用<code>vagrant up</code>来启动两台主机,也可以通过<code>vagrant up prod</code>来单独启动“prod”这台虚拟主机。</p><p>启动后(第一次启动耗时可能比较长),使用<code>vagrant status</code>来查看它们的状态:</p><p><img src="img/QQ截图20190329214836.png" alt="QQ截图20190329214836.png"></p><p>通过<code>vagrant ssh 主机名</code>就可以连接上它们了。</p><h3 id="网络配置-1"><a href="#网络配置-1" class="headerlink" title="网络配置"></a>网络配置</h3><p>接下来开始配置网络,让它们之间可以通讯。</p><p>我们按照上面介绍网络配置的方式来为这两台虚拟主机配置私有网络:</p><p><img src="img/QQ截图20190329215535.png" alt="QQ截图20190329215535.png"></p><p>值得注意的是,在配置私有网络的时候,IP网段不能和Windows主机相同。</p><p>配置好后重启这两台虚拟机,然后分别连接这两台虚拟机,看是否能够ping通:</p><p><img src="img/QQ截图20190329220045.png" alt="QQ截图20190329220045.png"></p><p><img src="img/QQ截图20190329220109.png" alt="QQ截图20190329220109.png"></p><p>配置成功。</p><h3 id="自定义主机名"><a href="#自定义主机名" class="headerlink" title="自定义主机名"></a>自定义主机名</h3><p>编辑Vagrantfile,添加如下配置:</p><p><img src="img/QQ截图20190329220648.png" alt="QQ截图20190329220648.png"></p><p>重启后,连接虚拟机,可以看到hostname已经修改为我们设置的名称了:</p><p><img src="img/QQ截图20190329220747.png" alt="QQ截图20190329220747.png"></p><p><img src="img/QQ截图20190329220810.png" alt="QQ截图20190329220810.png"></p><h3 id="多主机的共享目录"><a href="#多主机的共享目录" class="headerlink" title="多主机的共享目录"></a>多主机的共享目录</h3><p>默认的这两台虚拟主机的/vagrant和当前目录multi/是共享的。我们也可以分别为它们设置不同的共享目录。</p><p>编辑Vagrantfile,添加如下配置:</p><p><img src="img/QQ截图20190329221152.png" alt="QQ截图20190329221152.png"></p><p>然后重启这两台虚拟主机就好了。</p><p>更多Vagrant的配置可以查看官方文档:<a href="https://www.vagrantup.com/docs/" target="_blank" rel="noopener">https://www.vagrantup.com/docs/</a></p><script>$(".post-body a").not(".thispage").addClass("ignore-href").attr("target","_blank")</script></div><div></div><div></div><div><ul class="post-copyright"><li class="post-copyright-author"><strong>本文作者:</strong> MrBird</li><li class="post-copyright-link"><strong>本文链接:</strong> <a href="http://mrbird.cc/Create-Virtual-Machine-By-Vagrant.html" title="使用Vagrant创建CentOS虚拟机">http://mrbird.cc/Create-Virtual-Machine-By-Vagrant.html</a></li><li class="post-copyright-license"><strong>版权声明: </strong>本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="external nofollow" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明出处!</li></ul></div><footer class="post-footer"><div class="post-tags" style="margin-bottom:1.3rem"><a href="/tags/Vagrant/" rel="tag"># Vagrant</a></div><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-7651840997519232" data-ad-slot="2572559077" data-ad-format="auto" data-full-width-responsive="true"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({})</script><div class="post-nav"><div class="post-nav-next post-nav-item"><a href="/Spring-Boot-Async.html" rel="next" title="Spring Boot 中的异步调用"><i class="fa fa-chevron-left"></i> Spring Boot 中的异步调用</a></div><span class="post-nav-divider"></span><div class="post-nav-prev post-nav-item"><a href="/Docker-Image-Container.html" rel="prev" title="Docker 镜像与容器">Docker 镜像与容器 <i class="fa fa-chevron-right"></i></a></div></div></footer></article><hr><div id="container"></div><div class="post-spread"><div id="comment-div"></div><style>.valine .vlist{margin-bottom:3rem}.valine .vwrap .vcontrol .col.col-60{text-align:left}.valine .vlist .vcard .vhead,.valine .vlist .vcard section .vfooter{text-align:left}.valine .vlist .vcard section{padding-bottom:.5rem!important}.vname{color:#42b983!important}.valine .vinfo .col{text-align:left;margin-left:-27rem}div#comment-div{margin-bottom:-8rem}.valine .vlist .vcard .vcontent .code,.valine .vlist .vcard .vcontent code,.valine .vlist .vcard .vcontent pre{background:#fbfbfb}.valine .vlist .vcard .vcontent a{color:#42b983}.valine .vlist .vcard .vimg{border-radius:3px}.valine .vbtn{border-radius:2px;padding:.3rem 1.25rem}.valine .vbtn:active,.valine .vbtn:hover{color:#42b983;border-color:#42b983;background-color:#fff}.valine .vwrap .vheader .vinput:focus{border-bottom-color:#42b983}.valine .vlist .vcard .vcontent.expand:before{background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),to(hsla(0,0%,100%,.2)));background:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.2))}.valine .vlist .vcard .vcontent.expand:after{content:"点击展开";font-size:.4rem;text-align:right;left:-1rem;background:hsla(0,0%,100%,.2)}.valine .vlist .vcard section .vfooter .vat{color:#b3b3b3}.valine .vlist .vcard section .vfooter .vat:hover{color:#42b983}.vcontent img{margin:0}.valine .info{display:none}</style><script type="text/javascript" src="/js/av.min.js"></script><script type="text/javascript" src="/js/Valine.min.js"></script><script>new Valine({el:"#comment-div",notify:!0,verify:!0,appId:"SMcDFP1bN1jgb9Lo8JmtICHm-gzGzoHsz",appKey:"dH4nrUrt3V5XiJiI6Qyejnbi",placeholder:"",path:window.location.pathname,avatar:"monsterid",guest_info:["nick","mail","link"]})</script></div></div><script>var $bqinline=$("img[alt='bq-inline']");$bqinline.css({width:"2.3rem",height:"2.3rem",display:"inline","vertical-align":"text-bottom"})</script></div><div class="comments" id="comments"></div></div><aside id="sidebar" class="sidebar" onselectstart="return!1"><div class="sidebar-inner"><ul class="sidebar-nav motion-element"><li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap">Contents</li><li class="sidebar-nav-overview" data-target="site-overview">Site Preview</li></ul><section class="site-overview sidebar-panel"><div class="sidebar-sticky sticky"><div itemscope itemtype="http://schema.org/Person"><div class="author__avatar"><img src="/images/blogImage.jpg" class="author__avatar" alt="MrBird" itemprop="image"></div><div class="author__content"><h3 class="author__name" itemprop="name">MrBird's Blog</h3><p class="author__bio" itemprop="description">A simple blog, code repository, just keep blogging</p></div><div class="author__urls-wrapper"><button class="btn btn--inverse">Follow</button><ul class="author__urls social-icons"><li><a href="http://map.baidu.com/?newmap=1&s=s%26wd%3D%E7%A6%8F%E5%B7%9E%E5%B8%82%26c%3D300&from=alamap&tpl=mapcity" target="_blank" itemprop="url" class="ignore-href"><i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> FuZhou,CN</a></li><li><a href="https://love.mrbird.cc" target="_blank" itemprop="url" class="ignore-href"><i class="fa fa-fw fa-diamond" aria-hidden="true"></i> Love</a></li><li><a href="http://111.230.157.133/febs" target="_blank" itemprop="url" class="ignore-href"><i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website</a></li><li><a href="/atom.xml" target="_blank" itemprop="url" class="ignore-href"><i class="fa fa-fw fa-rss" aria-hidden="true"></i> RSS</a></li><li><a href="https://gitee.com/github-16661027" target="_blank" itemprop="sameAs" class="ignore-href"><i class="fa fa-fw fa-codepen" aria-hidden="true"></i> Gitee</a></li><li><a href="https://github.com/wuyouzhuguli" target="_blank" itemprop="sameAs" class="ignore-href"><i class="fa fa-fw fa-github-alt" aria-hidden="true"></i> GitHub</a></li><li><a href="javascript:;" class="popup-trigger"><i class="fa fa-fw fa-search" aria-hidden="true"></i> Search</a></li></ul></div></div></div><script>var $urls=$(".author__urls").find("a");$urls.each(function(){var o=$(this);o.mouseenter(function(){o.css({color:"#414547"})}),o.mouseleave(function(){o.css({color:""})})})</script></section><section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active"><div class="post-toc"><div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#构建CentOS7虚拟机"><span class="nav-number">1.</span> <span class="nav-text">构建CentOS7虚拟机</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#连接虚拟机"><span class="nav-number">2.</span> <span class="nav-text">连接虚拟机</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#目录共享"><span class="nav-number">3.</span> <span class="nav-text">目录共享</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#网络配置"><span class="nav-number">4.</span> <span class="nav-text">网络配置</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#虚拟机私有网络"><span class="nav-number">4.1.</span> <span class="nav-text">虚拟机私有网络</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#虚拟机公有网络"><span class="nav-number">4.2.</span> <span class="nav-text">虚拟机公有网络</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#多主机配置"><span class="nav-number">5.</span> <span class="nav-text">多主机配置</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#网络配置-1"><span class="nav-number">5.1.</span> <span class="nav-text">网络配置</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#自定义主机名"><span class="nav-number">5.2.</span> <span class="nav-text">自定义主机名</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#多主机的共享目录"><span class="nav-number">5.3.</span> <span class="nav-text">多主机的共享目录</span></a></li></ol></li></ol></div></div></section></div></aside></div></main><footer id="footer" class="footer" onselectstart="return!1"><div class="footer-inner"><div class="copyright">© 2016 - <span itemprop="copyrightYear">2019</span> <span class="author" itemprop="copyrightHolder">MrBird</span></div></div></footer><div class="back-to-top"><span style="font-family:'Source Sans Pro','Helvetica Neue',Arial,sans-serif;font-size:1.2em;font-weight:600">TOP</span></div></div><script type="text/javascript">"[object Function]"!==Object.prototype.toString.call(window.Promise)&&(window.Promise=null)</script><script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script><script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script><script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script><script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script><script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script><script type="text/javascript" src="/js/src/utils.js?v=5.1.1"></script><script type="text/javascript" src="/js/src/motion.js?v=5.1.1"></script><script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.1"></script><script type="text/javascript" src="/js/src/post-details.js?v=5.1.1"></script><script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.1"></script><script type="text/javascript">function proceedsearch(){$("body").append('<div class="search-popup-overlay local-search-pop-overlay"></div>').css("overflow","hidden"),$(".search-popup-overlay").click(onPopupClose),$(".popup").toggle();var t=$("#local-search-input");t.attr("autocapitalize","none"),t.attr("autocorrect","off"),t.focus()}var isfetched=!1,isXml=!0,search_path="search.xml";0===search_path.length?search_path="search.xml":search_path.endsWith("json")&&(isXml=!1);var path="/"+search_path,onPopupClose=function(t){$(".popup").hide(),$("#local-search-input").val(""),$(".search-result-list").remove(),$("#no-result").remove(),$(".local-search-pop-overlay").remove(),$("body").css("overflow","")},searchFunc=function(t,e,o){"use strict";$("body").append('<div class="search-popup-overlay local-search-pop-overlay"><div id="search-loading-icon"><i class="fa fa-spinner fa-pulse fa-2x fa-fw"></i></div></div>').css("overflow","hidden"),$("#search-loading-icon").css("margin","20% auto 0 auto").css("text-align","center"),$.ajax({url:t,dataType:isXml?"xml":"json",async:!0,success:function(t){isfetched=!0,$(".popup").detach().appendTo(".header-inner");var n=isXml?$("entry",t).map(function(){return{title:$("title",this).text(),content:$("content",this).text(),url:$("url",this).text()}}).get():t,r=document.getElementById(e),s=document.getElementById(o),a=function(){var t=r.value.trim().toLowerCase(),e=t.split(/[\s\-]+/);e.length>1&&e.push(t);var o=[];if(t.length>0&&n.forEach(function(n){function r(e,o,n,r){for(var s=r[r.length-1],a=s.position,i=s.word,l=[],h=0;a+i.length<=n&&0!=r.length;){i===t&&h++,l.push({position:a,length:i.length});var p=a+i.length;for(r.pop();0!=r.length&&(s=r[r.length-1],a=s.position,i=s.word,p>a);)r.pop()}return c+=h,{hits:l,start:o,end:n,searchTextCount:h}}function s(t,e){var o="",n=e.start;return e.hits.forEach(function(e){o+=t.substring(n,e.position);var r=e.position+e.length;o+='<b class="search-keyword">'+t.substring(e.position,r)+"</b>",n=r}),o+=t.substring(n,e.end)}var a=!1,i=0,c=0,l=n.title.trim(),h=l.toLowerCase(),p=n.content.trim().replace(/<[^>]+>/g,""),u=p.toLowerCase(),f=decodeURIComponent(n.url),d=[],g=[];if(""!=l&&(e.forEach(function(t){function e(t,e,o){var n=t.length;if(0===n)return[];var r=0,s=[],a=[];for(o||(e=e.toLowerCase(),t=t.toLowerCase());(s=e.indexOf(t,r))>-1;)a.push({position:s,word:t}),r=s+n;return a}d=d.concat(e(t,h,!1)),g=g.concat(e(t,u,!1))}),(d.length>0||g.length>0)&&(a=!0,i=d.length+g.length)),a){[d,g].forEach(function(t){t.sort(function(t,e){return e.position!==t.position?e.position-t.position:t.word.length-e.word.length})});var v=[];0!=d.length&&v.push(r(l,0,l.length,d));for(var C=[];0!=g.length;){var $=g[g.length-1],m=$.position,x=$.word,w=m-20,y=m+80;w<0&&(w=0),y<m+x.length&&(y=m+x.length),y>p.length&&(y=p.length),C.push(r(p,w,y,g))}C.sort(function(t,e){return t.searchTextCount!==e.searchTextCount?e.searchTextCount-t.searchTextCount:t.hits.length!==e.hits.length?e.hits.length-t.hits.length:t.start-e.start});var T=parseInt("1");T>=0&&(C=C.slice(0,T));var b="";b+=0!=v.length?"<li><a href='"+f+"' class='search-result-title'>"+s(l,v[0])+"</a>":"<li><a href='"+f+"' class='search-result-title'>"+l+"</a>",C.forEach(function(t){b+="<a href='"+f+'\'><p class="search-result">'+s(p,t)+"...</p></a>"}),b+="</li>",o.push({item:b,searchTextCount:c,hitCount:i,id:o.length})}}),1===e.length&&""===e[0])s.innerHTML='<div id="no-result"><i class="fa fa-search fa-5x" /></div>';else if(0===o.length)s.innerHTML='<div id="no-result"><i class="fa fa-frown-o fa-5x" /></div>';else{o.sort(function(t,e){return t.searchTextCount!==e.searchTextCount?e.searchTextCount-t.searchTextCount:t.hitCount!==e.hitCount?e.hitCount-t.hitCount:e.id-t.id});var a='<ul class="search-result-list">';o.forEach(function(t){a+=t.item}),a+="</ul>",s.innerHTML=a}};r.addEventListener("input",a),$(".local-search-pop-overlay").remove(),$("body").css("overflow",""),proceedsearch()}})};$(".popup-trigger").click(function(t){t.stopPropagation(),isfetched===!1?searchFunc(path,"local-search-input","local-search-result"):proceedsearch()}),$(".popup-btn-close").click(onPopupClose),$(".popup").click(function(t){t.stopPropagation()}),$(document).on("keyup",function(t){var e=27===t.which&&$(".search-popup").is(":visible");e&&onPopupClose()})</script></body><script>$(function(){$("a").not(".nav-link,.cloud-tie-join-count,.ignore-href,.jstree-anchor").addClass("animsition-link")});var burst1=new mojs.Burst({left:0,top:0,radius:{5:40},children:{shape:"circle",fill:["red","cyan","orange"],fillOpacity:.8,radiusX:3.5,radiusY:3.5}});document.addEventListener("click",function(a){null==a.target.href&&"footer"!=a.target.className&&"copyright"!=a.target.className&&"author__urls social-icons"!=a.target.className&&"author__avatar"!=a.target.className&&"sidebar sidebar-active"!=a.target.className&&burst1.tune({x:a.pageX,y:a.pageY}).generate().replay()})</script><script type="text/javascript" src="/js/message.js"></script></html><!-- rebuild by neat -->