• Vagrant 总结


    引言
     
      本文将讨论Vagrant基础应用,高级应用,基于Vagrant 的虚拟机优化,Vagrant的优势及区别等四部分
     
      参考资料:
    Vagrant是什么
     

      Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具。

      主要的功能:
        1. 建立和删除虚拟机
        2. 配置虚拟机运行参数
        3. 管理虚拟机运行状态
        4. 自动化配置和安装开发环境
        5. 打包和分发虚拟机运行环境

      vagrant可以支持多种虚拟环境,例如 VirtualBox, VMware, AWS, OpenStack等

    Vagrant的作用
     
      两方面:

        个人:跨平台、可移动、自动化部署无需人工参与
        公司:节省人力成本、统一开发环境

     
    Vagrant常用命令总结
    # 查看已有的box
    $ vagrant box list
    
    # 新建加一个box
    $ vagrant box add [此次镜像名称] [源镜像]
    
    # 删除指定box
    $ vagrant box remove [名称]
    
    # 初始化配置vagrantfile
    $ vagrant init
    
    # 启动虚拟机
    $ vagrant up
    
    # ssh登陆虚拟机
    $ vagrant ssh
    
    $ 挂起虚拟机
    # vagrant suspend
    
    # 重启虚拟机
    $ vagrant reload
    
    # 关闭虚拟机
    $ vagrant halt
    
    # 查看虚拟机状态
    $ vagrant status
    
    # 删除虚拟机
    $ vagrant destroy
    
    # 打包当前环境下为 box镜像
    $ vagrant paskage --output xxx.box

    初始化虚拟机步骤:

    1. 添加镜像
    $ vagrant box add [box名称名称] [路径/名称.box]
    
    2. 初始化虚拟机配置
    $ vagrant init [box名称]
    
    3. 启动虚拟机
    $ vagrant up
     Vagrant高级知识
     
      本段主要操作box下Vagrantfile 文件
     
      1. 端口转发  将本机具体端口转发到虚拟机端口
      
    # host=本机端口,guest=虚拟机端口
    config.vm.network "forwarded_port", host:8888, guest:81

    2. 共享目录    将本机具体目录和虚拟机共享

    三种可选共享方式:
      1. Basic Usage # 基础共享方式【默认】
      2. NFS # Mos系统 共享目录方式
      3. SMB # Windows系统 共享目录方式
      主要是为了使本机的文件更改之后能够更快的同步到虚拟机中,更快的生效

      
    # 本机目录同步到虚拟机目录 :nfc[可选项]
    config.vm.synced_folder "/Users/vincent/code/", "/home/www", :nfc => true
    注意:
    #   1. 需要配置私有网络IP
    #   2. Nginx 的sendfile on 需要改为 off;不然同步目录速度较慢

    3. 网络配置  三种网络配置方式

    公有网络

    # 要和本机网段一致
    config.vm.network "public_network", ip: "192.168.33.10"

    私有网络

    config.vm.network "private_network", ip: "192.168.33.10"
     Vagrant 虚拟机优化
       
      本段主要针对Vagranfile 中的属性修改
      
    # 设置虚拟机主机名
    config.vm.hostname = "ueba"
    
    config.vm.provider "virtualbox" do |vb|
      # 设置虚拟机内存 1024M
      vb.memory = "1024"
    
      # 设置虚拟机名称
      vb.name = "vm_name"
    
      # 设置cpu 数量
      vb.cpus = 2
    end
    总结
     
      这里对Vagrant和docker简述一下区别:
     

      1、docker只能执行docker所定义的容器。

      2、docker缺乏灵活的隔离方案(docker只能运行在Linux主机环境中)。

      3、 vagrant可以支持多种虚拟环境,例如 VirtualBox, VMware, AWS,

      4、 vagrant 可以更好的配置网络和文件共享。比如:vagrant可以给一个VM配置静态IP和端口数据转发。不论你使用的VirtualBox还是 VMware,vagrant都可以很好的完成配置。对于文件共享来说,vagrant提供了多种文件挂载方案供你考虑。如果你使用了docker,那么 这些事情就都需要你亲自动手来做了。

      5. vagrant 1.6中集成了docker-based development environments。所以在MAC和Windows环境中,vagrant会自动启动一个虚拟机来执行docker,这样就达到了docker的跨平台化。而背后例如网络,文件等等操作都是vagrant默默完成的。

      6. 针对于场景来说,Vagrant 适合用来管理虚拟机,而docker适合用来管理应用环境。

  • 相关阅读:
    webrtc 手机端视频旋转
    gstreamer 命令行一些demo
    git一些命令记录
    libnice的问题记录
    webrtc ice 协商一些记录
    linux 挂在windows目录
    leetcode Permutation Sequence
    gstreamer 接收rtsp存储为h264
    uva 10285
    AndroidStudio VS Eclipse快捷键
  • 原文地址:https://www.cnblogs.com/houdabao/p/9620678.html
Copyright © 2020-2023  润新知