在Mac上运行容器可能是一个挑战。毕竟,容器是基于特定于Linux的技术,例如控制组和命名空间。幸运的是,macOS有一个内置的管理程序,允许在Mac上运行虚拟机(VM)。管理程序是低级内核功能,而不是面向用户的功能。hyperkit是一个开源项目,可以使用macOS管理程序运行虚拟机。hyperkit被设计为一个“极简主义”的虚拟机运行器。与VirtualBox不同,它没有用于管理虚拟机的精美UI功能。您可以获取hyperkit,这是一个运行容器管理器并将所有部分组合在一起的极简Linux发行版。但它会有很多活动部件,听起来工作量很大。特别是如果你想通过使用vpnkit(一个开源项目,用于创建感觉更像是主机网络的一部分的虚拟机网络)使网络更加无缝。Lima当lima项目已经制定出这些细节时,就没有理由再费力了。让lima运行的最简单方法之一是使用Homebrew。您可以使用以下命令安装lima:$brewinstalllima一旦安装完成,可能需要一段时间,玩得开心。为了让lima知道你准备好了,你需要启动它。命令如下:$limactlstart如果这是您第一次运行,系统会询问您是否喜欢默认值,或者是否要更改其中任何一个。默认值非常安全,但我喜欢生活在疯狂的一面。这就是为什么我跳进编辑器并进行更改的原因:-location:"~"#CAUTION:`writable`SHOULDbefalseforthehomedirectory.#Setting`writable`totrueispossiblebutuntestedanddangerous.writable:false变为:-location:"~"#I*also*liketoliveddangerously--AustinPowerswritable:true如评论中所述,这可能很危险。遗憾的是,许多现有的工作流程都依赖于可读写的挂载。默认情况下,lima运行containerd来管理容器。containerd管理器也是一个非常整洁的管理器。虽然通常使用包装守护进程(例如dockerd)来添加这些漂亮的人体工程学,但还有另一种方法。nerdctl工具nerdctl工具是Docker客户端的直接替代品,它将这些功能放在客户端上,而不是服务器上。lima工具允许直接从虚拟机内部运行nerdctl,而无需在本地安装。完成后,是时候运行一个容器了!这个容器将运行一个HTTP服务器。您可以在Mac上创建这些文件:$lsindex.html$catindex.htmlhello现在,挂载并转发端口:$limanerdctlrun--rm-it-p8000:8000-v$(pwd):/html--entrypointbashpythonroot@9486145449ab:/#Runasimplewebserverinsidethecontainer:$limanerdctlrun--rm-it-p8000:8000-v$(pwd):/html--entrypointbashpythonroot@9486145449ab:/#cd/html/root@9486145449ab:/html#python-mhttp.server8000ServingHTTPon0.0.0.0port8000(
