一些约定

  • 寄主机: 你的本地电脑。(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. SpringBoot注入数据的方式
  2. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第7章-Brunovsky 型高阶非线性多智能体系统一致性控制
  3. Data Remove 程序总结
  4. Error:Can’t find import 2508 in coredll.dll问题解决
  5. Java代码块的学习
  6. druid 非对称加密_springboot配置文件中mysql的密码进行加密
  7. python迭代器创建序列_Python 中迭代器与生成器实例详解
  8. JavaSE_1   基本概念
  9. python黑网站_python
  10. hash算法总结收集
  11. c/c++成长之捷径
  12. Gof23设计模式速记(迷你图)
  13. python pytz下载_使用 pytz 处理 Python 中的时区问题
  14. python实现商品进销存管理系统
  15. java oracle数据备份_Java实现Oracle数据库备份
  16. 自然语言处理之分词技术
  17. 狂神Springboot笔记
  18. 科学家研发真实版的《星际迷航》牵引光束
  19. Ubuntu上安装Firefox浏览器
  20. golang 实现HTTP代理和反向代理

热门文章

  1. oracle 执行语句显示2,Oracle执行语句跟踪(2)——使用10046事件实现语句追踪
  2. 全员远程办公,市值达 149 亿美元:GitHub 的最大竞争对手上市了!
  3. 如何去除IDEA代码中大量的波浪线!
  4. 直播产品行业解决方案|商业化变现模型
  5. 卷积云神经网络_大气光学质量,Optical air mass,音标,读音,翻译,英文例句,英语词典...
  6. 河南计算机对口高考录取率,河南省招办:2018各省高考录取数据揭秘,看看河南的一本录取率是多少?...
  7. bzoj1617[Usaco2008 Mar]River Crossing渡河问题
  8. 名悦集团教你汽车商业保险怎么买划算
  9. [玩转C语言]---函数的递归
  10. 接口请求异常,状态码为400 – Bad Request