<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          再見(jiàn)了VMware,一款更輕量級(jí)的虛擬機(jī)!

          共 11213字,需瀏覽 23分鐘

           ·

          2021-12-13 03:06

          最近,打算在 Mac 電腦上安裝一個(gè)虛擬機(jī),用來(lái)學(xué)習(xí) K8S

          首先想到的是 VmwareParallels Desktop,然后打開(kāi)瀏覽器找了找,發(fā)現(xiàn)都只提供付費(fèi)版本,只有 Parallels Desktop 提供了 14 天的免費(fèi)試用。

          無(wú)法白嫖

          然后,開(kāi)始嘗試使用免費(fèi) VirtualBox,但是在安裝 CentOS 的時(shí)候,貌似因?yàn)?MacOS 最新版本的原因,總是報(bào)錯(cuò),花費(fèi)了好幾天的時(shí)間,試過(guò)各種方案,最終解決無(wú)果,就放棄了。。

          就在陌溪要放棄的時(shí)候,突然在 Ubuntu 官網(wǎng)進(jìn)行沖浪的時(shí)候,發(fā)現(xiàn)了一款叫 Multipass 的東西。

          它可以快速在電腦上快速搭建一個(gè)輕量級(jí)的虛擬機(jī),并且相比于 Vmware 更加輕量,只需一行命令快速創(chuàng)建 Ubuntu 虛擬機(jī)。

          Multipass 是一個(gè)輕量虛擬機(jī)管理器,是由 Ubuntu 運(yùn)營(yíng)公司 Canonical 所推出的開(kāi)源項(xiàng)目。運(yùn)行環(huán)境支持 LinuxWindowsmacOS。在不同的操作系統(tǒng)上,使用的是不同的虛擬化技術(shù)。在 Linux 上使用的是 KVMWindow 上使用 Hyper-VmacOS 中使用 HyperKit 以最小開(kāi)銷(xiāo)運(yùn)行VM,支持在筆記本模擬小型云。

          同時(shí),Multipass 提供了一個(gè)命令行界面來(lái)啟動(dòng)和管理 Linux 實(shí)例。下載一個(gè)全新的鏡像需要幾秒鐘的時(shí)間,并且在幾分鐘內(nèi)就可以啟動(dòng)并運(yùn)行 VM。(直呼好家伙,大大降低的我們安裝虛擬機(jī)的成本了)

          Multipass官網(wǎng):https://multipass.run/

          Multipass官網(wǎng)

          開(kāi)始使用

          在使用 Multipass 之前 ,首先需要安裝 Multipass 工具,可以打開(kāi)官網(wǎng)進(jìn)行下載

          https://multipass.run/

          選擇對(duì)應(yīng)的操作系統(tǒng),因?yàn)槲业氖?Mac 電腦,所以選擇 MacOS,點(diǎn)擊 Download 開(kāi)始下載

          選擇對(duì)應(yīng)版本安裝

          如果電腦裝了 brew 可以直接命令行下載安裝:

          brew cask install multipass

          下載安裝成功后, 執(zhí)行以下命令可以查看當(dāng)前軟件版本:

          multipass --version

          安裝成功后,點(diǎn)擊運(yùn)行,即可打開(kāi) Multipass 客戶(hù)端,這里能夠快速的通過(guò) Open Shell 創(chuàng)建和啟動(dòng)一個(gè)虛擬機(jī)

          Multipass客戶(hù)端

          下面,我們來(lái)介紹如何通過(guò)命令的方式,創(chuàng)建一臺(tái)虛擬機(jī)

          創(chuàng)建Ubuntu虛擬機(jī)

          首先,通過(guò)以下指令查看可供下載的 Ubuntu 鏡像

          multipass find

          運(yùn)行成功后,可以看到下面的這些鏡像列表,包含各種版本的

          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

          下載最新版的 Ubuntu 鏡像并運(yùn)行,初次創(chuàng)建時(shí)需要下載 Ubuntu 鏡像,網(wǎng)絡(luò)暢通的情況下,稍等片刻即可。

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

          自定義配置創(chuàng)建可以參考如下方式:

          -n, --name: 名稱(chēng)
          -c, --cpus: cpu核心數(shù), 默認(rèn): 1
          -m, --mem: 內(nèi)存大小, 默認(rèn): 1G
          -d, --disk: 硬盤(pán)大小, 默認(rèn): 5G

          操作虛擬機(jī)

          查看虛擬機(jī)列表

          虛擬機(jī)創(chuàng)建完成后,可以使用 multipass list 命令進(jìn)行查看虛擬機(jī)列表

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

          可以看到目前正在運(yùn)行一臺(tái) Ubuntu 20.04 版本的虛擬機(jī),并且對(duì)應(yīng)的 IP 地址為 192.168.64.2

          外部操作虛擬機(jī)

          通過(guò) multipass exec 命令在實(shí)例內(nèi)執(zhí)行給定的命令。第一個(gè)參數(shù)是運(yùn)行命令的實(shí)例,也就是 vm01

          我們通過(guò) exec 命令,就可以在外部操作剛剛創(chuàng)建的虛擬機(jī),例如查看內(nèi)部所處的目錄,執(zhí)行 pwd 命令

          # multipass exec vm01 pwd
          /home/ubuntu

          查看虛擬機(jī)信息

          通過(guò) multipass info 命令,即可查看當(dāng)前運(yùn)行的虛擬機(jī)信息

          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:         --

          進(jìn)入虛擬機(jī)

          通過(guò) multipass shell 命令,即可進(jìn)入到虛擬機(jī)內(nèi)部

          multipass shell vm01

          運(yùn)行后的結(jié)果如下所示,可以看到目前虛擬機(jī)的一些系統(tǒng)配置信息,以及內(nèi)存和磁盤(pán)的使用情況

          進(jìn)入虛擬機(jī)內(nèi)部

          同時(shí)會(huì)運(yùn)行一個(gè)新的 Ubuntu 系統(tǒng),此時(shí)便進(jìn)入到了Ubuntu 環(huán)境中, 在里面可以執(zhí)行相關(guān)的 linux 指令

          當(dāng)然如果不想進(jìn)入系統(tǒng)內(nèi)部,也可以通過(guò)上述提到的 multipass exce 命令,來(lái)操作 Ubuntu 系統(tǒng)

          首先執(zhí)行下面命令,給系統(tǒng)設(shè)置一個(gè) root 密碼,設(shè)置好密碼后,使用 su root 切換到 root 用戶(hù)

          # 設(shè)置密碼
          sudo passwd
          # 切換 root
          su root

          ubuntu 是使用 apt-get 來(lái)進(jìn)行包管理的,首先更新一下 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

          下面我們可以測(cè)試一下,nginx 是否安裝成功,在 mac 上打開(kāi)瀏覽器,輸入虛擬機(jī)的 ip 地址 192.168.64.2

          nginx安裝成功

          可以看出,目前 nginx 已經(jīng)成功運(yùn)行了,后續(xù)的話(huà),可能會(huì)考慮在上面部署更多的應(yīng)用,感興趣的小伙伴歡迎關(guān)注~

          掛載數(shù)據(jù)卷

          multipass 還提供和 Docker 一樣的掛載數(shù)據(jù)卷的功能,能夠與外部宿主機(jī)的文件保持同步。

          # 掛載格式
          multipass mount 宿主機(jī)目錄  實(shí)例名:虛擬機(jī)目錄

          下面,我在用戶(hù)的目錄下,創(chuàng)建一個(gè) hello 目錄

          # 創(chuàng)建hello目錄
          mkdir hello
          # 掛載
          multipass mount /Users/moxi/hello  vm01:/hello

          掛載完成后,我們回到實(shí)例 vm01 中,可以看出多了一個(gè) hello 文件夾,說(shuō)明已經(jīng)成功掛載~

          掛載成功

          因此,以后在 vm01hello文件夾 中創(chuàng)建的文件,都會(huì)在的宿主機(jī)的 hello 文件夾同步顯示

          卸載數(shù)據(jù)卷

          如果以后不需要用到掛載了,可以使用 unmount 命令卸載

          #卸載數(shù)據(jù)卷
          multipass umount 容器名

          傳輸文件

          除了使用上述的 mount 掛載卷的方式實(shí)現(xiàn)文件的交互,同時(shí)還可以通過(guò) transfer 命令,將宿主機(jī)的文件,發(fā)送到虛擬機(jī)內(nèi)部

          multipass transfer 主機(jī)文件 容器名:容器目錄

          例如,將 hello.txt 發(fā)送到

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

          刪除和釋放實(shí)例

          使用下面的命令,可以開(kāi)啟、停止、刪除和釋放實(shí)例

          # 啟動(dòng)實(shí)例
          multipass start vm01
          # 停止實(shí)例
          multipass stop vm01
          # 刪除實(shí)例(刪除后,還會(huì)存在)
          multipass delete vm01
          # 釋放實(shí)例(徹底刪除)
          multipass purge vm01

          容器配置自動(dòng)化

          為了保持開(kāi)發(fā)環(huán)境和線(xiàn)上環(huán)境一致性 同時(shí)節(jié)省部署時(shí)間 multipass 給我們提供了 --cloud-init 選項(xiàng)進(jìn)行容器啟動(dòng)初始化配置:

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

          上面 config.yaml 則是容器的初始化配置文件,例如,我們想在初始化容器的時(shí)候,自動(dòng)下載安裝 Node.js,內(nèi)容如下:

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

          runcmd 可以指定容器 首次啟動(dòng) 時(shí)運(yùn)行的命令

          凡是用戶(hù)自定義的cloud-init的配置文件,必須以#cloud-config開(kāi)頭,這是cloud-init識(shí)別它的方式。

          yaml 配置文件可以參考下面的文章

          https://cloudinit.readthedocs.io/en/latest/topics/examples.html?highlight=lock-passwd#including-users-and-groups

          更多關(guān)于 multipass 的高階的技巧,歡迎訪(fǎng)問(wèn) multipass 官方文檔

          https://multipass.run/docs/

          好了,本期關(guān)于 Multipass 的基礎(chǔ)學(xué)習(xí)就到這里了,感興趣的小伙伴環(huán)境下載自己動(dòng)手學(xué)習(xí)呢~

          總結(jié)

          使用了一陣子后,Multipass 在使用起來(lái)很簡(jiǎn)潔直觀(guān),在整體操作上和 docker 類(lèi)似,如果想在自己電腦上快速搭建一個(gè) Linux 系統(tǒng)用于學(xué)習(xí)的話(huà),選擇使用 Multipass 還是非常方便的。

          唯一不足的地方就是,Multipass 是由 Ubuntu 背后的 Canonical 公司開(kāi)發(fā)的,因此 Multipass 所使用的鏡像也都是 Ubuntu 鏡像(這也可以理解,畢竟支持自家的產(chǎn)品),不過(guò)對(duì)于習(xí)慣了使用 CentOS 的用戶(hù)來(lái)說(shuō),還是用些許不太習(xí)慣。不過(guò)瑕不掩瑜,Multipass 在我看來(lái)還是一款非常棒的軟件~

               

          程序汪資料鏈接

          程序汪接的7個(gè)私活都在這里,經(jīng)驗(yàn)整理

          Java項(xiàng)目分享 最新整理全集,找項(xiàng)目不累啦 06版

          堪稱(chēng)神級(jí)的Spring Boot手冊(cè),從基礎(chǔ)入門(mén)到實(shí)戰(zhàn)進(jìn)階

          臥槽!字節(jié)跳動(dòng)《算法中文手冊(cè)》火了,完整版 PDF 開(kāi)放下載!

          臥槽!阿里大佬總結(jié)的《圖解Java》火了,完整版PDF開(kāi)放下載!

          字節(jié)跳動(dòng)總結(jié)的設(shè)計(jì)模式 PDF 火了,完整版開(kāi)放下載!


          歡迎添加程序汪個(gè)人微信 itwang009  進(jìn)粉絲群或圍觀(guān)朋友圈

          瀏覽 47
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  红桃视频一区二区三区四区 | 精品中文字幕在线播放 | 一道本高清无码 | 日本xxxxxwww18 | 日韩人妻久久 |