2025年3月18日 星期二 甲辰(龙)年 月十七 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 其它软件

使用VirtualBox搭建Alpine虚拟机开发环境

时间:02-28来源:作者:点击数:34

简介

本文的初衷是手动搭建一个跨平台,可移植,轻量型的Linux虚拟机开发环境,以替代 Vagrant

Vagrant 实际就是在虚拟机(如VirtualBox)的基础上,再封装一层管理脚本。但是,引入了不必要的复杂性,有些Linux镜像更新很不及时导致无法使用,命令脚本出错手动分析问题麻烦。

本文撰写时, 已放弃 vagrant。使用原生 virtual box 虚拟机。简单!干净!

Alpine Linux 是一个社区开发的面向安全应用的轻量级Linux发行版。很适合做轻量型的定制化开发环境。

测试环境

   
宿主机 Windows 10 专业版
Virtual Box 6.1.14 r140239 (Qt5.6.2)
Alpine Linux alpine-virt-3.12.0-x86_64.iso

1. 安装VirtualBox

到官网 https://www.virtualbox.org 下载最新版本的VirtualBox安装包和扩展包。

扩展包版本必须和安装包版本一致。

2. 安装扩展包

下载地址:https://www.virtualbox.org/wiki/Downloads

找到 Oracle VM VirtualBox Extension Pack ,点击 All supported platforms 即可下载。

装好Virtualbox后,打开主界面,点击:菜单 -> 管理 -> 全局设定 -> 扩展 -> 添加。选中扩展包。

:此处默认为最新版本. 旧版则下载旧版扩展包 VirtualBox older builds

3. 下载Alpine Linux安装盘

https://alpinelinux.org/downloads/

可下载虚拟机专用版. 如 alpine-virt-3.12.0-x86_64.iso 光盘文件仅40M

4. 虚拟机设置

4.1 新建 VirtualBox 虚拟机

类型选择 “Linux 2.6 / 3.x / 4.x (64-bit)”。

4.2 创建虚拟硬盘

可选择100G,反正是动态扩展。虚拟硬盘文件类型 默认即可.

  • VDI: vbox自己的虚拟硬盘格式
  • VMDK: VMWare等其他虚拟化厂商支持的虚拟硬盘格式
  • VHD: Microsoft支持的虚拟硬盘文件格式
  • Parallels,这个大家好像见得不多,他也是一个虚拟化厂商(2008年成立)

4.3 网络 设置

连接方式选择 桥接网卡, 勾选 接入网线。 virtual box 默认为 网络地址转换(NAT)

桥接网卡: 创建一个和宿主机并列的, 处于相同局域网的独立网络环境, 宿主机可通过局域网IP访问.

网络地址转换NAT: 创建一个宿主机下的网络环境, 宿主机使用端口转发与其交互.

4.4 共享文件夹 设置

共享文件夹路径(宿主机目录) - 共享文件夹名称(www) - 挂载点(虚拟机目录)(/root/www)

4.5 挂载系统安装盘

存储 - 控制器 - 分配光驱 选择虚拟光盘文件,找到我们前面下载的 AlpineLinux的iso文件.

5.5 其他设置

系统–处理器–启用 PAE/NX, 使能硬件加速, USB设置成3.0版本

5. 安装AlpineLinux

启动虚拟机,用光盘启动,然后用root登录AlpineLinux,没有密码。敲入命令:

  • setup-alpine

跟随命令行向导一步一步执行:

不清楚一律默认,这样不容易出问题.

选择时区时, 选择 Asia/Shanghai

选择安装源时,敲入 f 让系统自己寻找一个最快的源

选择安装目标盘时,根据具体磁盘名选择, 一般是 sda

选择分区类型时,敲入 sys

磁盘格式化并写入操作系统数据,会提示擦除所以数据,确认输入 y 。耐心等待

  • WARNING: Erase the above disk(s) and continue? [y/N]: y

没几分钟就安装完了.

最后:退出光盘,重启虚拟机

6. 设置SSH局域网访问。

虚拟机设置–网络–网卡1–连接方式–桥接网卡。默认值为: 网络地址转换(NAT)

6.1 查看虚拟机局域网IP

  • ip address show

6.2 配置SSH服务端

Alpine 默认关闭root用户ssh登录。更改 sshd_config 文件,开启root登录。

  • echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

6.3 重启 ssh 服务

  • rc-service sshd restart

7. Virtual Box 安装增强功能

7.1 挂载光盘安装增强功能

挂载宿主机 Virtual Box 安装目录下的 VBoxGuestAdditions.iso 光盘文件安装。

Virtual Box的Alpine系统挂载ISO光盘文件 https://www.cdsy.xyz/computer/soft/others/240228/cd60979.html

7.2 使用 apk 工具安装增强功能(推荐)

去掉 repositories 仓库中 community 的注释,开启 community 社区源:

  • vim /etc/apk/repositories
  • http://mirrors.ustc.edu.cn/alpine/v3.12/main
  • http://mirrors.ustc.edu.cn/alpine/v3.12/community
  • ......

因为 virtualbox-guest-additions 和 docker 包都是在community仓库里面。

安装增强扩展

  • apk add virtualbox-guest-additions

8. 挂载宿主机共享目录

  • mkdir -p /root/www
  • modprobe -a vboxsf
  • mount -t vboxsf www /root/www

www 目录为 virtual box --设置–共享文件夹,设置的共享名称。可设置多个共享目录

开机启动自动挂载:

  • echo "www /root/www vboxsf defaults 0 0" >> /etc/fstab

9. 网卡配置

  • vi /etc/network/interfaces

iface eth0 inet dhcp 改为 iface eth0 inet static ,

参照宿主机IP网段,配置对应的 addressnetmaskgateway 项。

  • auto lo
  • iface lo inet loopback
  • auto eth0
  • iface eth0 inet static
  • address 192.168.0.102
  • netmask 255.255.255.0
  • gateway 192.168.0.1
  • hostname localhost
  • auto eth1
  • iface eth1 inet dhcp

重启服务

  • service networking restart

10. 安装 docker docker-compose pip

安装并启动docker:

  • apk add docker
  • addgroup <username> docker
  • service docker start

使之随机启动:

  • ln -s /etc/init.d/docker /etc/runlevels/default/docker

  • rc-update add docker boot

安装 docker-compose

  • apk add docker-compose

Docker国内镜像加速:

  • vi /etc/docker/daemon.json:
  • {
  • "registry-mirrors": ["https://registry.docker-cn.com"]
  • }

docker-compose 无法使用,可能是因为pip未安装

  • localhost:~# docker-compose
  • -ash: docker-compose: not found
  • localhost:~# pip -V
  • -ash: pip: not found

apk add pip 提示找不到包。百度无解,谷歌后,得知应如下安装 pip 才是正解:

  • apk add py-pip

alpine Docker https://wiki.alpinelinux.org/wiki/Docker

11. 虚拟硬盘文件格式的转换

Windows7 能够引导 vhd 格式的虚拟硬盘,而 VirtualBox 的虚拟硬盘文件默认是 vdi 格式的。可以用 VBoxManager.exe来转换。

VBoxManager 存在于VirtualBox的安装目录下。

vmdk转换成vdi

  • VBoxManage.exe clonehd source.vmdk rename.vdi --format VDI

vdi转换成vmdk

  • VBoxManage.exe clonehd source.vdi rename.vmdk --format VMDK

vdi转换成vhd

  • VBoxManage.exe clonehd source.vdi rename.vhd --format VHD

运行命令后,原文件会保留,并创建一个新的硬盘文件。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门