03.02.2023

В containerd приняты изменения, позволяющие запускать Linux-контейнеры во FreeBSD

В проект containerd принят набор изменений, интегрирующий поддержку runtime runj и открывающий возможность использования во FreeBSD OCI-совместимых образов контейнеров на базе Linux, например образов Docker. В комментариях к изменениям приведён пример успешного запуска во FreeBSD образа с Alpine Linux.

 $ sudo ctr run --rm --runtime wtf.sbk.runj.v1 --tty --snapshotter zfs docker.io/library/alpine:latest test 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/-/issues" Linux 3.17.0 FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC x86_64 Linux

Несмотря на экспериментальный статус проекта runj и ограниченный набор функциональности на текущий момент, даже в таком виде проект может быть полезен для личных экспериментов, упрощения моделирования решений (Proof Of Concept), локальной разработки, запуска тестов перед развёртыванием в облачные системы и проработки работоспособности для случаев, когда нет возможности перейти на оттестированные и промышленные решения на других платформах, но потребность в контейнеризации назрела. Для работы требуются установленные jail, jls, jexec и ps.

Отдельно стоит отметить, что runj — личный проект Самуэля Карпа (Samuel Karp), инженера из компании Amazon, занимающегося разработкой Linux-дистрибутива Bottlerocket и технологий контейнерной изоляции для AWS, который также является независимым участником Technical Oversight Board проекта OpenContainers. После доведения runj до необходимого уровня проект может можно будет применять для замены штатного runtime в системах Docker и Kubernetes, используя для запуска контейнеров FreeBSD вместо Linux. Из OCI runtime в настоящее время реализованы команды для создания, удаления, запуска, принудительного завершения и оценки состояния контейнеров, а также настройки процесса, точек монтирования и имени хоста.

Источник.