首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用VirtualBox将VM作为开发环境

使用VirtualBox将VM作为开发环境

原创
作者头像
DifficultWork
修改2024-12-09 10:38:52
修改2024-12-09 10:38:52
4790
举报
文章被收录于专栏:阶梯计划阶梯计划

前言

本地的开发环境出了一些问题,docker启动和golang编译基本失效,因此想到使用虚机来解决。

1 环境和软件

本地OS:Windows 11 专业版

VirtualBox:7.0(高版本只能安装在C盘)

Ubuntu镜像:22.04 server

1.1 关于高版本VirtualBox安装到C盘

以D盘为例,在D盘下创建一个VirtualBox的目录,然后开启cmd命令行(管理员权限,不要用PowerShell),执行如下命令:

代码语言:bash
复制
icacls D:\VirtualBox /reset /t /c
icacls D:\VirtualBox /inheritance:d /t /c
icacls D:\VirtualBox /grant *S-1-5-32-545:(OI)(CI)(RX)
icacls D:\VirtualBox /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA)
icacls D:\VirtualBox /grant *S-1-5-11:(OI)(CI)(RX)
icacls D:\VirtualBox /deny *S-1-5-11:(DE,WD,AD,WEA,WA)

之后就可以安装到这个目录了。注意VirtualBox最好放在盘符下面的一级目录,否则需要把所有路径都要执行以下上面的命令。

2 安装后配置

2.1 网络

给VM设置两个网络:

  • NAT网络:可以让VM访问公网
  • 主机网络:开通从主机访问VM(VSCode、SSH工具需要)
  • 设置网络配置: 一般情况下第二个网卡在系统启动时是DOWN的状态,并且没有IP,可以采用如下方式设置: 1) 打开netplan,vim /etc/netplan/50-cloud-init.yaml(ubuntu高版本使用此配置网卡,配置文件名根据实际情况修改) 2) 修改配置如下(enp0s3是第一块NAT网卡,enp0s8是第二块主机网卡):
代码语言:bash
复制
network:
    ethernets:
        enp0s3:
            dhcp4: true
        enp0s8:
            dhcp4: false
            addresses:
                - 192.168.56.101/24
    version: 2

3) 保存后,使用netplay apply生效。

2.2 共享目录

方便代码文件共享

然后linux下创建映射目录mkdir /opt/go,修改/etc/fstab,增加:

代码语言:bash
复制
go /opt/go vboxsf rw,auto 0 0

(第一个go是共享文件夹名字,/opt/go是挂载目录)。

2.3 安装其他开发工具

在VM中安装golang以及docker等,使用Windows的VScode远程到VM下的项目。

3 VirtualBox一些使用

当VM配置完成后,大多数都是用ssh工具来连接,大多数时间是不需要VBox的窗口的,可以使用如下方式,后台启动VM:

Windows下进入到VBox的安装目录,

  • 启动虚拟机:.\VBoxManage.exe startvm [vm-name] --type headless
  • 查看启动的虚机列表:.\VBoxManage.exe list runningvms
  • 关闭虚拟机:\VBoxManage.exe controlvm [vm-name] poweroff

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1 环境和软件
    • 1.1 关于高版本VirtualBox安装到C盘
  • 2 安装后配置
    • 2.1 网络
    • 2.2 共享目录
    • 2.3 安装其他开发工具
  • 3 VirtualBox一些使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档