一些约定

  • 寄主机: 你的本地电脑。(windows或者macOS系统)
  • 虚拟机软件: virtualbox (跨平台,免费, 我这用的是5.2.22版本)
  • 虚拟机:用virtualbox创建出来的虚拟机(linux系统,我用的是centos7,其他应该也大同小异)

本文的目标是在寄主机搭建出来虚拟机,且实现以下几个功能:

  1. 虚拟机可以上公网
  2. 虚拟机和寄主机互通
  3. 虚拟机有自己的固定IP(静态IP)
  4. 虚拟机和寄主机之间有共享目录,实现在寄主机coding,运行环境在虚拟机中。

第一步:安装寄主机和虚拟机

安装virtualbox和用virtualbox安装虚拟机比较简单,这里不做过多赘述,不懂的朋友请自行百度~,在此只提及一些个人建议。

虚拟机内存适当大一些

它建议的1024MB,个人感觉有点小,我这里直接拉到了4G左右,大家是自己情况考虑选择。

创建硬盘时选“固定大小”,且适当分配大一些

如果选择“动态分配”,virtualbox会分配的很小,我的只有8G。后续不够用了需要自己再折腾分盘,挂载等等的事情,比较繁琐,索性用“固定大小”尽量一次性分配够。我是寄主机的硬盘是500G的,这里固定分配了50G给虚拟机,大家请根据自己情况选择。

第二步:网络配置

如果你图省事不想配置的繁琐的话可以考虑直接选择“桥接网卡”,这样虚拟机就直接有了自己的ip,且和公网和寄主机都是互通的。寄主机可以直接用此ip ssh到虚拟机进行操作。唯一的缺点是开关机后虚拟机的ip可能会变。因为是动态分配的。

如果你想让虚拟机有自己的静态IP请参考这篇文章:
VirtualBox双网卡实现虚拟机Linux CentOS 7上网以及主宿互访

第三步:共享目录

要用virtualbox的共享目录功能需要先在虚拟机中安装增强功能

自动安装:
1.   正常开启虚拟机
2.  虚拟机的菜单栏中选择 设备→安装增强功能
3.  完成安装

如果自动安装不成功(报错),可以尝试手动安装

手动安装:

VirtualBox 增强包安装篇

安装完成后,在虚拟机的设置中配置共享目录

上图“共享文件夹路径”是寄主机的共享目录路径
“共享文件夹名称”是虚拟机中的共享文件夹名称(不是路径)

完成后重启的你虚拟机,共享目录会自动挂载到 /media 目录下 (我这里是/media/sf_virtual_share)

权限问题

如果你不是用的root用户登录的虚拟机,你会发现你没有权限操作共享目录,根源在于这个自动mount的文件夹的所有者为root,所属的组是vboxsf,并且只有这两个用户有访问权限。
解决方法也很简单,只需要将当前登录用户加入到vboxsf组就行了。

sudo usermod -aG vboxsf $(whoami)

记得要重启一次才生效。

软链问题

virtrulbox不允许在共享目录中建立软链接,然后有时又不得不建立。例如用npm安装一些第三方包时就会自动创建软链接。

解决办法:
virtualbox允许在共享文件夹创建软连接

ok!至此你可以愉快的在寄主机的共享文件夹里coding,在虚拟机里运行程序了。


可能有人会问:你为什么不用vagrant。这里我说明下原因。 我从vagrant1.x版本开始使用,升级2.x版本后突然运行不了了,原因未知。然后我想反正vagrant是依赖于virtual等虚拟机的,干脆直接用virtualbox吧,少一层依赖。

结束, 感谢你的阅读~

虚拟机搭建本地linux开发环境,实现代码在本地windows系统运行环境在linux系统相关推荐

  1. 第一节:linux 开发AI算法以及libtorch部署算法详细教程-环境搭建

    文章目录 linux 开发AI算法以及部署算法详细教程 linux docker环境搭建 参考example-docker libtorch 安装教程 opencv 安装教程 编译过程 测试开发环境示 ...

  2. 获取远程服务器代码到本地文件,获取远程服务器代码到本地文件

    获取远程服务器代码到本地文件 内容精选 换一换 远程桌面协议(Remote Desktop Protocol,RDP),是微软提供的多通道的远程登录协议.本节为您介绍如何使用RDP文件远程登录Wind ...

  3. 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之8---Symbian,Windows Mobile,Palm,Linux,J2ME, BREW

    Symbian Symbian OS是专门为手机开发的操作系统,所以在手机常用的功能方面进行了加强和扩展,同时也加入了一些PDA的功能,比如所个人信息管理,多媒体功能,但是并不很完善,和微软的Wind ...

  4. 【开发工具 - vscode】vscode配置C/C++运行环境

    [开发工具 - VSCode]vscode配置C/C++环境 准备工作 第一步 下载vscode 第二步 下载mingw 第三步 将mingw添加至系统变量中 第四步 打开VsCode安装一下必要的插 ...

  5. Linux上的node站点之centos配置nodejs运行环境笔记

    centos配置nodejs运行环境 原来的项目放在windowsserver上了,现在换个系统要重新配置下. 先看看是不是安装python rpm -qa|grep python 一般租的云服务器会 ...

  6. linux系统运行flash3d,在Linux上运行STM32,快来试试!

    原标题:在Linux上运行STM32,快来试试! STM32MP1多核微处理器,带有650Mhz主频的cortex-A7双核以及一个主频为209Mhz的cortex-M4核,即片内拥有三核.很多STM ...

  7. 如何在浏览器中运行Linux程序,如何在Chromebook的浏览器标签中运行完整的Linux桌面 | MOS86...

    Crouton是在Chromebook上运行Linux操作系统的最佳方法.现在吧 这是它 工作原理相关文章图片1tupian购买适用于Linux的Chromebook时,需要牢记4件事 这种方法需要一 ...

  8. MyEclipse中运行环境jre、编译级别、tomcat运行环境区别

    运行环境JRE SYSTEM LIARARY引入项目中依赖的jdk基础包,在java build path -->library中可以切换 编译级别是项目编译成.class时使用的编译jdk版本 ...

  9. java环境变量设置优化_Mac/windows配置jdk环境变量-seo优化只选拉一八科技

    Mac/windows配置jdk环境变量 Mac配置jdk环境变量 直接双击dmg文件,然后单击[下一步]完成安装.请忽略[配置jdk环境变量]直接跳转到[检查jdk是否安装成功]. Windows配 ...

最新文章

  1. IE6中PNG图片背景无法透明显示的最佳解决方案
  2. c语言编写单词位置反转,C语言笔试题答案.docx
  3. Android项目开发填坑记-Fragment的onAttach
  4. redis事务的简单介绍
  5. drools 7.11.0.Final使用
  6. Error: Cannot find module
  7. 补充“为什么Scrum不行”
  8. 基于卷积神经网络的草莓病害检测(新数据+基础算法?=SCI)
  9. 旅游推荐系统毕业设计总结(包含旅游信息爬取、算法应用和旅游推荐系统实现)
  10. 夫水之积也不厚,则其负大舟也无力
  11. 无聊做做数学题系列1 - 正弦定理及三角公式
  12. python opencv图片拼接
  13. C++学习笔记 (三)
  14. 美国俚语:Keep your eyes peeled什么意思?_
  15. RabbitMQ:消息模型
  16. c++ 左值 广义左值 右值 纯右值 将亡值
  17. 新款趣味测试小程序源码_测试可用
  18. 趣头条多账号 | 短视频批量伪原创
  19. C++实现无头结点单链表
  20. 【Cocos2d-x 游戏开发】HttpClient制作网络游戏

热门文章

  1. 塑料袋 (Demo) (《缝纫机乐队》电影插曲) - 缝纫机乐队
  2. win7下elasticsearch5.0 安装head插件
  3. Scrapy教程1--7
  4. 咖说 | 为什么马斯克、SEC议员等众多大V都换了“激光眼”头像?
  5. YYCache 设计思路
  6. aix升级新安装oracle,怎么样在AIX 5L上安装与升级Oracle
  7. The Lost Art of C Structure Packing
  8. Gojs组件------前端图形化插件之利器
  9. 亚马逊AmazonS3存储概念
  10. ss linux安装教程,Linux安装ss5详细步骤