В проект 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 в настоящее время реализованы команды для создания, удаления, запуска, принудительного завершения и оценки состояния контейнеров, а также настройки процесса, точек монтирования и имени хоста.
// cc-by opennet.ru
// converted with crypt’s opennet autoreposter
Если по чесноку, то на фряхе не хватает системы а-ля WSL для бесшовной интеграции с линуксом. Сейчас надо либо пересобирать софт под фряху, если возможно, либо пердолиться с линуксятором.
WSL1 или WSL2?
линуксолятор - это как раз WSL1 и есть. и он как раз очень неплох. проинсталируй любую ubuntu в chroot, смени sysctl переменную compat.linux.emul_path: /compat/linux и вот оно.
ограничения в первую очередь связаны с udev вещами.
Что-то среднее, ещё не вм, но и не транслятор. Что-то типа linux jail с обёрткой для бесшовной интеграции.
Транслятор имхо всегда outdated, даже мелкомягкие не осилили поддержку в актуальном состоянии.
ты смотришь на это, как программист, - вы всегда любите самые последние бирюльки. мне как админу больше импонирует, что линуксолятор обеспечивает набор стандартных интерфейсов из RHEL, достаточный для запуска софта. все, что привыкло использовать непосредственный доступ к устройствам, обламывается.
FreeBSD просто недостаточно мейнстримна, чтобы предлагать такие законченные решения.
даже мелкомягкие не осилили поддержку в актуальном состоянии.
для них это просто не приоритет. все они могут, просто не хотят.
Что-то типа linux jail с обёрткой для бесшовной интеграции.
как раз linux jail - это и есть обертка вокруг линуксолятора. а линуксолятор обеспечивает бесшовную интеграцию, но доступ к девайсам было некому обхачивать.
если уж даже linux java можно запускать во FreeBSD, то это вин.
к вечеру сложно понять, в чем суть этого проекта. кажется, это какая надстройка над штатным слоем совместимости с Linux для запуска docker, видимо.
Скорее обёртка над jail’ами для совместимости с OCI.
а что ты пытаешься запускать для бесшовной интеграции с линуксом?
либо пердолиться с линуксятором
он же “просто работает”.


