我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

点击“IT码弟子”,关注,并将公众号置顶

每日技术干货,第一时间送达!

它是一个轻量级的虚拟机管理器,也是运营公司推出的一个开源项目。运行环境支持Linux、macOS。在不同的操作系统上,采用不同的虚拟化技术。 Linux上使用KVM,Linux上使用Hyper-V,macOS则以最小的开销运行VM,支持在笔记本电脑上模拟小型云。

同时提供命令行界面来启动和管理Linux实例。下载新映像只需几秒钟,虚拟机在几分钟内即可启动并运行。 (嘿嘿,大大降低了我们安装虚拟机的成本)

官方网站:

ubuntu密码对了登不上去_ubuntu密码不对_ubuntu 密码不够好

开始使用

在使用它之前,您首先需要安装该工具。您可以打开官方网站进行下载。

选择对应的操作系统。因为我的是Mac电脑,所以选择MacOS,点击开始下载。

ubuntu密码对了登不上去_ubuntu 密码不够好_ubuntu密码不对

如果您的计算机上安装了brew,则可以直接从命令行下载并安装它:

brew cask install multipass

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

multipass --version

安装成功后,单击“运行”打开客户端,您可以通过Open Shell快速创建并启动虚拟机。

ubuntu密码不对_ubuntu 密码不够好_ubuntu密码对了登不上去

接下来介绍如何通过命令创建虚拟机

创建虚拟机

首先使用以下命令查看可供下载的图片

multipass find

运行成功后可以看到如下镜像列表,包括各个版本

Image                       Aliases           Version          Description
core                        core16            20200818 Ubuntu Core 16
core18                                        20200812 Ubuntu Core 18
18.04                       bionic            20211109 Ubuntu 18.04 LTS
20.04                       focal,lts         20211118 Ubuntu 20.04 LTS
21.04                       hirsute           20211119 Ubuntu 21.04
21.10                       impish            20211103 Ubuntu 21.10
appliance:adguard-home                        20200812 Ubuntu AdGuard Home Appliance
appliance:mosquitto                           20200812 Ubuntu Mosquitto Appliance
appliance:nextcloud                           20200812 Ubuntu Nextcloud Appliance
appliance:openhab                             20200812 Ubuntu openHAB Home Appliance
appliance:plexmediaserver                     20200812 Ubuntu Plex Media Server Appliance
anbox-cloud-appliance                         latest           Anbox Cloud Appliance
minikube                                      latest           minikube is local Kubernetes

下载最新版本的映像并运行它。首次创建镜像时需要下载镜像。如果网络畅通的话,稍等一下。

multipass launch -n vm01 -c 1 -m 1G -d 10G

自定义配置创建可以按如下方式完成:

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

操作虚拟机

查看虚拟机列表

虚拟机创建完成后,可以使用list命令查看虚拟机列表。

% multipass list
Name                    State             IPv4             Image
vm01                    Running           192.168.64.2     Ubuntu 20.04 LTS

可以看到当前正在运行一个20.04版本的虚拟机,对应的IP地址为192.168.64.2

外部操作虚拟机

通过 exec 命令在实例内执行给定的命令。第一个参数是运行该命令的实例,即 vm01

我们可以使用exec命令在外部对新创建的虚拟机进行操作,比如查看内部目录、执行pwd命令等。

# multipass exec vm01 pwd
/home/ubuntu

查看虚拟机信息

可以通过info命令查看当前运行的虚拟机的信息。

# multipass info vm01
Name: vm01
State: Running
IPv4: 192.168.64.2
Release: Ubuntu 20.04.3 LTS
Image hash: 91740d72ffff (Ubuntu 20.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 1.3G out of 9.5G
Memory usage: 170.9M out of 1.9G
Mounts: --

进入虚拟机

通过shell命令,可以进入虚拟机

multipass shell vm01

运行后结果如下。可以看到当前虚拟机的一些系统配置信息,以及内存和磁盘的使用情况。

同时,一个新的系统将运行,您将进入该环境,您可以在其中执行相关的Linux指令。

当然,如果你不想进入系统,也可以使用上面提到的excel命令来操作系统。

首先执行以下命令设置系统的root密码。设置密码后,使用su root切换到root用户。

# 设置密码
sudo passwd
# 切换 root
su root

apt-get 用于包管理。首先更新apt-get,然后安装nginx。

# 更新apt
apt-get update
# 安装 nginx
apt-get install nginx

安装完nginx后,可以到/etc/nginx目录下查看刚才的nginx配置信息

root@vm01:/lost+found# cd /etc/nginx/
root@vm01:/etc/nginx# ls
conf.d fastcgi_params koi-win modules-available nginx.conf scgi_params sites-enabled uwsgi_params
fastcgi.conf koi-utf mime.types modules-enabled proxy_params sites-available snippets win-utf

接下来我们可以测试nginx是否安装成功。 mac上打开浏览器,输入虚拟机的IP地址192.168.64.2

可以看到目前nginx已经运行成功。未来我们可能会考虑在上面部署更多的应用程序。

挂载数据量

它还提供了相同的挂载数据卷的功能,并且可以与外部主机同步文件。

# 挂载格式
multipass mount 宿主机目录 实例名:虚拟机目录

接下来,我在用户目录中创建一个 hello 目录

# 创建hello目录
mkdir hello
#
 挂载
multipass mount /Users/moxi/hello vm01:/hello

挂载完成后,我们回到实例vm01。我们可以看到多了一个hello文件夹,说明挂载成功了~

因此,以后在vm01的hello文件夹中创建的文件将同步显示在主机的hello文件夹中。

卸载数据卷

如果以后不再需要使用该挂载,可以使用命令将其卸载。

#卸载数据卷
multipass umount 容器名

传输文件

除了使用上述挂载方式挂载卷来实现文件交互之外,还可以使用命令将文件从主机发送到虚拟机内部。

multipass transfer 主机文件 容器名:容器目录

例如,将 hello.txt 发送至

multipass transfer hello.txt vm01:/home/ubuntu/

删除并释放实例

使用以下命令启动、停止、删除和释放实例

# 启动实例
multipass start vm01
# 停止实例
multipass stop vm01
# 删除实例(删除后,还会存在)
multipass delete vm01
# 释放实例(彻底删除)
multipass purge vm01

容器配置自动化

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

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

上面的.yaml是容器的初始化配置文件。例如,我们希望在初始化容器时自动下载并安装Node.js。内容如下:

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

您可以指定容器首次启动时要运行的命令。

任何用户定义的 cloud-init 配置文件都必须以 #cloud- 开头。这就是 cloud-init 识别它的方式。

容器技术可以保证环境一致性,简化项目配置和部署流程,因此很受开发者欢迎。如果你打算尝试或者已经尝试过基于容器来简化本地项目环境配置,但是感觉使用起来不够简单,那么你可以尝试一下。

安装

macOS(支持以上版本)可以直接通过以下方式安装:

酿造桶

用户可以在这里下载安装(仅支持10,如果是家庭版或者v1803之前的10专业版/企业版,需要额外安装)。

运行命令确认安装成功并查看版本:

1.1.0+苹果电脑

1.1.0+苹果电脑

可以看到当前版本是本月刚刚发布的1.1.0。对于很多用户来说,这个版本最大的更新就是对代理的支持。从1.1.0开始,像许多命令行工具一样,环境变量中指定的代理将受到尊重。因为在创建容器时,可能需要从网络下载镜像,而很多地方的网络连通性并不理想,支持代理可以极大地提高用户体验。

开始使用

首先创建一个容器:

$ --name 反应

:反应

首次创建时,需要下载镜像。如果网络畅通的话,等待一段时间即可。

容器创建后会立即启动,所以我们创建容器后可以直接使用:

$ 执行反应 -- -d

: 18.04.4 LTS

将打印 Linux 发行版信息。之前我们创建容器的时候,并没有指定使用什么样的镜像。上述命令的输出显示默认情况下将使用当前的 LTS 版本。

除了直接在容器上运行(exec)命令外,还可以通过shell命令“进入”容器:

外壳反应

我们已经进入了一个完整的Linux环境,可以进行各种操作了。例如,假设我们看到一个介绍 React Hooks 的教程,并且想要尝试该教程的示例项目:

克隆

cd 反应钩子演示

新项目管理

糟糕,系统告诉我们 npm 尚未安装,建议通过 apt 安装。

“npm”不是。您可以通过以下方式进行:

须藤 apt npm

然而,当前仓库中的LTS版本的Node.js比较旧,因此我们将安装LTS版本的Node.js来代替(12):

卷曲-sL |须藤-E bash-

须藤 apt-get -y

新项目管理

npm 启动

项目正在运行,非常棒:

您现在可以在 .react-hook- 中查看 -react-hook-。

本地::3000/

在你的::3000/

请注意,构建不是 .

要构建,请使用 npm run build。

这里192.168.64.5是分配给react容器的IP,所以我们可以直接在主机上打开浏览器访问:3000/来查看效果。

定制

接下来,我们尝试将我们正在开发的 Node.js 项目容器化。与之前不同的是,我们会对容器进行一些定制,使其使用起来更加方便。

首先,我们的Node.js项目要部署到云平台上,所以我们希望容器的规格尽可能和云平台上的生产环境一致。其次,我们之前手动安装了 Node.js,这次我们想要自动化安装过程。

因此,我们使用以下命令创建容器:

--名称lean --disk 2G --mem 256M --cloud-init Lean.yaml 18.04

我们通过命令行参数指定容器的磁盘和内存大小,并明确指定使用18.04。容器创建成功后,可以通过info查看容器的基本信息:

$信息--全部

名称:精益

状态:

IPv4:192.168.64.2

: 18.04.4 LTS

图像哈希:(18.04 LTS)

负载:0.11 0.30 0.16

磁盘使用量:2.0G中1.3G

使用量:229.7M 中的 71.4M

名称:反应

状态:

IPv4:192.168.64.5

: 18.04.4 LTS

图像哈希:(18.04 LTS)

负载:0.00 0.00 0.00

磁盘使用量:4.7G 中的 1.7G

使用量:985.7M 中的 112.1M

可以看到,之前创建的react容器默认分配了5G硬盘和1G内存。精益容器根据我们的要求分配了2G硬盘和256M内存(这是我们计划使用的云平台Cloud 免费版试用实例的规格)。另外,基本信息中并没有CPU核心信息。默认情况下,将为容器分配 1 个 CPU 核心。

至于lean.yaml,则是容器的初始化配置文件。内容如下:

#云-

- 卷曲-sL |须藤-E bash-

- sudo apt-get -y

-wget

- sudo dpkg -i 精益-cli-x64.deb

您可以指定容器首次启动时要运行的命令。这里我们复制之前安装Node.js的命令,添加安装lean-cli的命令(我们通过lean-cli将代码部署到云平台)。

容器初始化配置文件遵循cloud-init标准,可以通过yaml文件进行用户、文件、软件仓库、DNS解析、SSH密钥、chef等各种初始配置。

我们只是打算在容器中测试和部署项目,并不打算shell到容器中使用vim或emacs来开发项目。因此,我们直接在主机上挂载一个目录:

安装演示精益:/home//演示

demo 是我们的 Node.js 项目目录。如果读者想要测试,可以使用以下模板项目:

git 克隆演示

同时注册账号并创建应用,方便后续的部署操作。

挂载完成后,我们可以使用方便的IDE和编辑器在宿主机上开发项目,然后shell Lean到容器中进行测试:

光盘演示

精益登录 # 使用之前注册的账号进行登录

Lean # 选择之前创建的应用程序

npm #安装项目依赖

Lean up # 本地(容器内)调试

屏幕将输出:

节点应用程序位于端口:3000

通过之前的info,我们知道了lean容器的IP地址,因此我们可以在宿主机上访问:3000/来查看效果。

如果效果符合预期,我们就可以在容器内运行lean --prod 1部署项目了。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/7042.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线