在Mac平台上使用Multipass安装Ubuntu虚拟机

起因

最近需要在Ubuntu系统上安装应用进行测试, 无奈手头上只有一台mac电脑, 怎么办呢

如果使用第三方诸如Vmware虚拟机软件是在太费劲了

好在Ubuntu官方给咱建议了一款虚拟机软件Multipass, 相比Vmware更加轻量, 只需一行命令快速创建Ubuntu容器

注意了 Multipass目前只支持创建Ubuntu容器, 但是除了Mac平台外, Multipass还可以在WindowsLinux平台上使用

本文直介绍Mac平台的用法, 其他的可以参考官网

开始使用

1.Multipass安装

首先需要安装Multipass工具

下载地址(访问密码:312306)

如果电脑装了brew可以直接命令行下载安装:

brew cask install multipass

下载安装成功后, 执行以下命令可以查看当前软件版本:

multipass --version

2.创建Ubuntu容器

可以通过以下指令查看可供下载的Ubuntu镜像:

multipass find

下载最新版的Ubuntu镜像并运行:

multipass launch --name ubuntu

命令执行后将自动下载并后台运行

如果你想自定义配置创建可以参考如下方式:

multipass launch -n vm01 -c 4 -m 4G -d 40G
  • -n, --name: 名称
  • -c, --cpus: cpu核心数, 默认: 1
  • -m, --mem: 内存大小, 默认: 1G
  • -d, --disk: 硬盘大小, 默认: 5G

3.操作容器

  1. 进入容器

    # 如果对应实例没有运行的话,会主动运行对应实例
    multipass shell 容器名称
    

    image-20210831150818963

    此时便进入到了Ubuntu环境中, 在此可以执行相关的linux指令

    如果你不想进入容器直接执行linux指令, 可以使用multipass exec指令, 比如我想在容器中创建一个名为ABC文件夹:

    multipass exec 容器名 mkdir ABC
    
  2. 查看容器信息

    multipass info 容器名
    

    显示结果:

    State:          Running
    IPv4:           192.168.64.2
    Release:        Ubuntu 20.04.3 LTS
    Image hash:     97bb9f79af52 (Ubuntu 20.04 LTS)
    Load:           0.00 0.00 0.00
    Disk usage:     1.3G out of 4.7G
    Memory usage:   136.0M out of 981.3M
    Mounts:         --
    
  3. 主机和容器数据交互

    第一种 使用挂载数据卷的方式:

    multipass mount $HOME 容器名
    
    # 或者指定容器目录
    multipass mount $HOME 容器名:目录名
    

    如果要卸载数据卷:

    multipass umount 容器名
    

    第二种 transfer 进行文件复制传输

    multipass transfer 主机文件 容器名:容器目录
    
  4. 容器配置自动化

    为了保持开发环境和线上环境一致性 同时节省部署时间 multipass给我们提供了--cloud-init选项进行容器启动初始化配置:

    multipass launch --name ubuntu --cloud-init config.yaml 
    

    上面 config.yaml 则是容器的初始化配置文件,内容如下:

    #cloud-config
    
    runcmd:
      - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
      - sudo apt-get install -y nodejs
    

    runcmd 可以指定容器 首次启动 时运行的命令,上面表示首次启动自动下载安装 Node.js

容器管理

  1. 查看所有创建的容器

    multipass list
    
  2. 启动和停止运行容器

    # 停止ubuntu和ubuntu1
    multipass stop ubuntu ubuntu1
    # 启动ubuntu
    multipass start ubuntu
    
  3. 对 所有容器统一操作

    # 启动所有容器
    multipass start --all
    # 停止所有容器
    multipass stop --all
    # 所有容器放入回收站
    multipass delete --all
    # 彻底删除所有容器
    multipass delete --purge --all
    
    

总结

整体操作来看, 感觉和docker很像, 如果你只需要一个ubuntu系统, 那么选择Multipass还是很方便的, 节省大量的时间

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

原文地址:https://www.cnblogs.com/songjianzaina/p/15210921.html