最近需要在Ubuntu
系统上安装应用进行测试, 无奈手头上只有一台mac
电脑, 怎么办呢
如果使用第三方诸如Vmware
虚拟机软件是在太费劲了
好在Ubuntu
官方给咱建议了一款虚拟机软件Multipass
, 相比Vmware
更加轻量, 只需一行命令快速创建Ubuntu容器
注意了 Multipass
目前只支持创建Ubuntu
容器, 但是除了Mac
平台外, Multipass
还可以在Windows
和Linux
平台上使用
本文直介绍Mac
平台的用法, 其他的可以参考官网
Multipass
安装首先需要安装Multipass
工具
下载地址(访问密码:312306)
如果电脑装了brew
可以直接命令行下载安装:
brew cask install multipass
下载安装成功后, 执行以下命令可以查看当前软件版本:
multipass --version
可以通过以下指令查看可供下载的Ubuntu镜像:
multipass find
下载最新版的Ubuntu
镜像并运行:
multipass launch --name ubuntu
命令执行后将自动下载并后台运行
如果你想自定义配置创建可以参考如下方式:
multipass launch -n vm01 -c 4 -m 4G -d 40G
进入容器
# 如果对应实例没有运行的话,会主动运行对应实例
multipass shell 容器名称
此时便进入到了Ubuntu
环境中, 在此可以执行相关的linux
指令
如果你不想进入容器直接执行linux
指令, 可以使用multipass exec
指令, 比如我想在容器中创建一个名为ABC文件夹:
multipass exec 容器名 mkdir ABC
查看容器信息
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: --
主机和容器数据交互
第一种 使用挂载数据卷的方式:
multipass mount $HOME 容器名
# 或者指定容器目录
multipass mount $HOME 容器名:目录名
如果要卸载数据卷:
multipass umount 容器名
第二种 transfer
进行文件复制传输
multipass transfer 主机文件 容器名:容器目录
容器配置自动化
为了保持开发环境和线上环境一致性 同时节省部署时间 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
查看所有创建的容器
multipass list
启动和停止运行容器
# 停止ubuntu和ubuntu1
multipass stop ubuntu ubuntu1
# 启动ubuntu
multipass start ubuntu
对 所有容器统一操作
# 启动所有容器
multipass start --all
# 停止所有容器
multipass stop --all
# 所有容器放入回收站
multipass delete --all
# 彻底删除所有容器
multipass delete --purge --all
整体操作来看, 感觉和docker
很像, 如果你只需要一个ubuntu
系统, 那么选择Multipass
还是很方便的, 节省大量的时间
本文为作者原创 转载时请注明出处 谢谢
微信公众号二维码如下:
原文:https://www.cnblogs.com/songjianzaina/p/15210921.html