macOS 容器机器
容器机器提供了一个高度集成的 Linux 环境,可以无缝地在您的 Mac 上运行。容器机器快速、轻量且持久。它们基于标准的 OCI 映像,可以构建和共享。主机集成(例如自动用户和主目录共享)可以让您在终端中的任何位置快速访问您的 Linux 环境。 为什么选择容器机器?容器通常以应用程序为模型。容器机器以 Linux 环境为模型。它运行映像的初始化系统,允许您注册长时间运行的服务或在进程监视器下测试您的应用程序。容器机器会自动将您的用户名和主目录映射到 Linux 环境中。您的仓库和点文件在两个平台上均可用。直接在 macOS 上使用编辑器和工具,同时在 Linux 环境中构建和运行您的应用程序。在 Mac 上编辑,在容器内部构建。您的仓库在 macOS 的 $HOME 中,并且在容器机器内挂载在 /Users/<username>。使用您的 macOS 编辑器或 IDE;在您的容器机器中编译和运行。针对 Linux 工件使用 macOS 原生工具。您的 Mac 上的性能分析器、屏幕截图工具、浏览器和 GUI 调试器都能看到容器机器看到的相同文件——在 "我已构建它" 和 "我正在检查它" 之间没有复制步骤。 用于测试的真实 Linux 服务。运行数据库或任何您的堆栈需要的系统服务——systemctl start postgresql 在安装了 systemd 的映像上有效。每个目标发行版一个环境。针对您拥有的目标发行版创建多个容器机器——alpine、ubuntu、debian。每个都有相同的 $HOME 和来自您 Mac 的相同点文件。快速在各种发行版中测试您的应用程序。 快速启动:container machine create alpine:latest --name dev container machine run -n dev whoami # 您的主机用户名,而不是 root container machine run -n dev pwd # /home/<you> — 您的 Mac 主目录,挂载在容器中 container machine run -n dev # 交互式 shell;进入 $HOME 中的您的仓库 container machine run 是获取 shell 或运行单个命令的方法。如果容器机器被停止,运行将首先启动它。 在容器机器中工作 打开一个 shell 或运行单个命令 不带命令时,container machine run 作为与您的主机账户匹配的用户打开交互式 shell:container machine run -n dev 传递一个命令以运行一次并退出:container machine run -n dev uname -a container machine run -n dev -- cat /proc/cpuinfo 设置默认值 选择一个默认的容器机器,这样您就可以省略 -n 标志:container machine set-default dev container machine run # 在 dev 上操作 列出、检查、停止、删除 container machine ls # 列出所有容器机器 container machine inspect dev # 一个容器机器的 JSON 详细信息 stop dev # 停止容器机器 container machine rm dev # 删除,包括其持久存储 容器机器的别名是 m,因此 m ls、m run 等都能正常工作。 调整 CPU、内存或更改主目录挂载 container machine set 更新磁盘上的配置。更改在下次停止和启动后生效: container machine set -n dev cpus=4 memory=8G container machine stop dev container machine run -n dev -- nproc 内存默认为主机内存的一半。主目录挂载可以是 rw(默认)、ro 或 none。 自带容器机器映像 任何包含 /sbin/init 的 Linux 映像都可以作为容器机器。例如,该 Dockerfile 构建了一个具有 systemd 和常见命令行工具的 Ubuntu 24.04 容器机器映像: FROM ubuntu:24.04 ENV container container RUN apt-get update && \ apt-get install -y \ dbus systemd openssh-server net-tools iproute2 iputils-ping curl wget vim-tiny man sudo && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ yes | unminimize RUN >/etc/machine-id RUN >/var/lib/dbus/machine-id RUN systemctl set-default multi-user.target RUN systemctl mask \ dev-hugepages.mount \ sys-fs-fuse-connections.mount \ systemd-update-utmp.service \ systemd-tmpfiles-setup.service \ console-getty.service RUN systemctl disable \ networkd-dispatcher.service RUN sed -i -e 's/^AcceptEnv LANG LC_ \* $/#AcceptEnv LANG LC_*/' /etc/ssh/sshd_config 构建并从中创建一个容器机器:container build -t local/ubuntu-machine:latest . container machine create local/ubuntu-machine:latest --name ubuntu 默认情况下,容器在第一次启动时运行一个内置的设置脚本来配置上面描述的用户。要使用您自己的设置,请将一个可执行脚本添加到映像的 /etc/machine/create-user.sh。它在第一次启动时以 root 身份运行一次,设置这些变量: CONTAINER_GID CONTAINER_HOME CONTAINER_MACHINE_ID CONTAINER_UID CONTAINER_USER
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡