自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用 Lima 在你的 Mac 上運(yùn)行容器

系統(tǒng) Linux
在你的 Mac 上運(yùn)行容器可能是一個挑戰(zhàn)。畢竟,容器是基于 Linux 特有的技術(shù),如控制組和命名空間。

在你的 Mac 上運(yùn)行容器可能是一個挑戰(zhàn)。畢竟,容器是基于 Linux 特有的技術(shù),如控制組和命名空間。

幸運(yùn)的是,macOS 擁有一個內(nèi)置的虛擬機(jī)監(jiān)控程序hypervisor,允許在 Mac 上運(yùn)行虛擬機(jī)(VM)。虛擬機(jī)監(jiān)控程序是一個底層的內(nèi)核功能,而不是一個面向用戶的功能。

hyperkit 是一個可以使用 macOS 虛擬機(jī)監(jiān)控程序運(yùn)行虛擬機(jī)的 開源項目。hyperkit 被設(shè)計成一個“極簡化”的虛擬機(jī)運(yùn)行器。與 VirtualBox 不同,它沒有花哨的 UI 功能來管理虛擬機(jī)。

你可以獲取 hyperkit,這是一個運(yùn)行容器管理器的極簡 Linux 發(fā)行版,并將所有部分組合在一起。但這將有很多變動組件,且聽起來像有很多工作。特別是如果你想通過使用 vpnkit (一個開源項目,用于創(chuàng)建感覺更像是主機(jī)網(wǎng)絡(luò)一部分的虛擬機(jī)網(wǎng)絡(luò))使網(wǎng)絡(luò)連接更加無縫。

[[426023]]

Lima

當(dāng) lima 項目 已經(jīng)解決了這些細(xì)節(jié)問題時,就沒有理由再去做這些努力了。讓 lima 運(yùn)行的最簡單方法之一是使用 Homebrew。你可以用這個命令安裝 lima:

  1. $ brew install lima 

安裝后,可能需要一些時間,就享受一些樂趣了。為了讓 lima 知道你已經(jīng)準(zhǔn)備好了,你需要啟動它。下面是命令:

  1. $ limactl start 

如果這是你第一次運(yùn)行,你會被問到是否喜歡默認(rèn)值,或者是否要改變其中的任何一項。默認(rèn)值是非常安全的,但我喜歡生活在瘋狂的一面。這就是為什么我跳進(jìn)一個編輯器,從以下地方進(jìn)行修改:

  1. - location: "~" 
  2.   # CAUTION: `writable` SHOULD be false for the home directory. 
  3.   # Setting `writable` to true is possible but untested and dangerous. 
  4.   writable: false 

變成:

  1. - location: "~" 
  2.  # I *also* like to live dangerously -- Austin Powers 
  3.  writable: true 

正如評論中所說,這可能是危險的??杀氖牵S多現(xiàn)有的工作流程都依賴于掛載是可讀寫的。

默認(rèn)情況下,lima 運(yùn)行 containerd 來管理容器。containerd 管理器也是一個非常簡潔的管理器。雖然使用一個包裝的守護(hù)程序,如 dockerd,來增加這些漂亮的工效是很常見的,但也有另一種方法。

nerdctl 工具

nerdctl 工具是 Docker 客戶端的直接替換,它將這些功能放在客戶端,而不是服務(wù)器上。lima 工具允許無需在本地安裝就可以直接從虛擬機(jī)內(nèi)部運(yùn)行 nerdctl。

做完這些后,可以運(yùn)行一個容器了!這個容器將運(yùn)行一個 HTTP 服務(wù)器。你可以在你的 Mac 上創(chuàng)建這些文件:

  1. $ ls 
  2. index.html 
  3. $ cat index.html 
  4. hello 

現(xiàn)在,掛載并轉(zhuǎn)發(fā)端口:

  1. $ lima nerdctl run --rm -it -p 8000:8000 -v $(pwd):/html --entrypoint bash python 
  2. root@9486145449ab:/# 

在容器內(nèi),運(yùn)行一個簡單的 Web 服務(wù)器:

  1. $ lima nerdctl run --rm -it -p 8000:8000 -v $(pwd):/html --entrypoint bash python 
  2. root@9486145449ab:/# cd /html/ 
  3. root@9486145449ab:/html# python -m http.server 8000 
  4. Serving HTTP on 0.0.0.0 port 8000 (<http://0.0.0.0:8000/>) ... 

在另一個終端,你可以檢查一切看起來都很好:

  1. $ curl localhost:8000 
  2. hello 

回到容器上,有一條記錄 HTTP 客戶端連接的日志信息:

  1. 10.4.0.1 - - [09/Sep/2021 14:59:08] "GET / HTTP/1.1" 200 - 

一個文件是不夠的,所以還要做些優(yōu)化。 在服務(wù)器上執(zhí)行 CTRL-C,并添加另一個文件:

  1. ^C 
  2. Keyboard interrupt received, exiting. 
  3. root@9486145449ab:/html# echo goodbye &gt; foo.html 
  4. root@9486145449ab:/html# python -m http.server 8000 
  5. Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... 

檢查你是否能看到新的文件:

  1. $ curl localhost:8000/foo.html 
  2. goodbye 

總結(jié)

總結(jié)一下,安裝 lima 需要一些時間,但完成后,你可以做以下事情:

  • 運(yùn)行容器。
  • 將你的主目錄中的任意子目錄掛載到容器中。
  • 編輯這些目錄中的文件。
  • 運(yùn)行網(wǎng)絡(luò)服務(wù)器,在 Mac 程序看來,它們是在 localhost 上運(yùn)行的。

這些都是通過 lima nerdctl 實(shí)現(xiàn)的。

 

責(zé)任編輯:趙寧寧 來源: Linux中國
相關(guān)推薦

2024-01-11 11:14:57

WaylandShutter

2023-03-20 11:36:28

Linux命令

2022-11-22 06:43:33

Kubernetes云服務(wù)Linux

2017-09-18 10:05:15

WindowsLinux容器

2021-09-06 09:10:31

Linuxncurses定位文本

2021-11-28 21:19:25

電腦程序Windows 10

2020-09-05 16:35:20

AndroidPython軟件開發(fā)

2010-07-27 09:44:16

HTML 5

2020-05-25 17:40:00

MacpyenvPython

2023-08-07 06:19:54

人工智能

2011-03-24 09:28:47

Linux文件系統(tǒng)barrier

2014-10-11 11:30:43

CentOSDocker

2022-01-18 17:57:21

PodmanLinux容器

2014-04-03 11:04:50

2014-07-07 09:49:13

UbuntuDocker

2013-12-18 15:18:04

2017-05-18 10:44:49

MACDockerOracle

2013-08-28 15:50:36

Linux桌面Mac

2024-08-26 14:32:43

2010-07-28 16:40:44

Mac OSADSL連接設(shè)置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號