对 containerd 进行的更改以允许 Linux 容器在 FreeBSD 上运行

containerd 项目采用了一系列更改,集成了运行时 runj 支持,并开放了 FreeBSD 使用 OCI 兼容的基于 Linux 的容器映像(例如 Docker 映像)的能力。 对更改的注释提供了在 FreeBSD 上成功启动 Alpine Linux 映像的示例。 $ sudo ctr run -rm -runtime wtf.sbk.runj.v1 -tty -snapshotter zfs docker.io/library/alpine:最新测试 sh -c 'cat /etc/os-release && uname -a' NAME=»Alpine Linux" ID=alpine VERSION_ID=3.16.0 PRETTY_NAME="Alpine Linux v3.16" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/ Linux 3.17.0 FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC x86_64 Linux

尽管 runj 项目目前处于实验状态且功能集有限,但即使以这种形式,该项目也可用于个人实验、简化解决方案建模(概念验证)、本地开发、在部署到云系统之前运行测试当不可能切换到其他平台上经过测试的工业解决方案,但容器化的需求已经成熟时,制定案例的功能。 它需要jail、jls、jexec 和ps 才能工作。

另外值得注意的是,runj 是 Samuel Karp 的个人项目,Samuel Karp 是一名 Amazon 工程师,为 AWS 开发 Bottlerocket Linux 发行版和容器隔离技术,同时也是 OpenContainers 项目技术监督委员会的独立成员。 将 runj 提升到所需水平后,该项目可用于替换 Docker 和 Kubernetes 系统中的标准运行时,使用 FreeBSD 而不是 Linux 来运行容器。 目前,OCI 运行时实现了创建、删除、启动、强制关闭和评估容器状态的命令,以及配置进程、挂载点和主机名。

来源: opennet.ru

添加评论