Начиная с выпуска FreeBSD 14.2 стали формироваться [[https://download.freebsd.org/releases/OCI-IMAGES/14.2-RELEASE/ образы контейнеров]] в формате OCI (Open Container Initiative). Для запуска контейнеров на основе этих образов можно применять инструментарий Podman, который портирован для FreeBSD и доступен для установки из пакетов.Для загрузки предложены три варианта образов FreeBSD:
** static - урезанное окружение для выполнения только статически собранных исполняемых файлов
** dynamic - расширенный вариант окружения static с компонентами для использования разделяемых библиотек и запуска динамически скомпонованных исполняемых файлов.
** minimal - дополняет вариант dynamic утилитами для формирования привычного консольного окружения с UNIX shell и пакетным менеджером.
Установка Podman во FreeBSD.
pkg install -r FreeBSD -y podman-suite emulators/qemu-user-static
Настройка ZFS-раздела для контейнеров:
zfs create -o mountpoint=/var/db/containers zroot/containers
zfs snapshot zroot/containers@empty
При желании использовать USF вместо ZFS в /usr/local/etc/containers/storage.conf заменяем "zfs"/driver на "vfs":
sed -I .bak -e 's/driver = "zfs"/driver = "vfs"/' \
/usr/local/etc/containers/storage.conf
Создаём конфигурацию межсетевого экрана PF - /etc/pf.conf, используя пример /usr/local/etc/containers/pf.conf.sample. Перезапускаем PF
sysctl net.pf.filter_local=1
service pf restart
Монтируем /dev/fd:
mount -t fdescfs fdesc /dev/fd
Создаём необходимые для Podman файлы конфигурации, используя примеры:
/usr/local/etc/containers/containers.conf.sample
/usr/local/etc/containers/policy.json.sample
/usr/local/etc/containers/registries.conf.sample
/usr/local/etc/containers/storage.conf.sample
Устанавливаем образы контейнеров minimal, dynamic и static с FreeBSD 4.2:
export OCIBASE=https://download.freebsd.org/releases/OCI-IMAGES/14.2-RELEAS...
podman load -i=$OCIBASE/FreeBSD-14.2-RELEASE-amd64-container-image-minimal.txz
podman load -i=$OCIBASE/FreeBSD-14.2-RELEASE-amd64-container-image-dynamic.txz
podman load -i=$OCIBASE/FreeBSD-14.2-RELEASE-amd64-container-image-static.txz
Проверяем список установленных образов контейнеров командами "podman images" и "buildah images":
podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/freebsd14-minimal 14.2-RELEASE-amd64 c5f3e77557a9 4 days ago 35.1 MB
localhost/freebsd14-dynamic 14.2-RELEASE-amd64 ebf7538b22f4 4 days ago 15.9 MB
localhost/freebsd14-static 14.2-RELEASE-amd64 7876fe59dbb3 4 days ago 5.45 MB
buildah images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/freebsd14-minimal 14.2-RELEASE-amd64 c5f3e77557a9 4 days ago 35.1 MB
localhost/freebsd14-dynamic 14.2-RELEASE-amd64 ebf7538b22f4 4 days ago 15.9 MB
localhost/freebsd14-static 14.2-RELEASE-amd64 7876fe59dbb3 4 days ago 5.45 MB
Анализируем слои, образующие образ minimal, который является надстройкой над образами static и dynamic:
podman image tree localhost/freebsd14-minimal:14.2-RELEASE-amd64
Image ID: c5f3e77557a9
Tags: [localhost/freebsd14-minimal:14.2-RELEASE-amd64]
Size: 35.07MB
Image Layers
├── ID: cd53fb07fb66 Size: 5.449MB Top Layer of: [localhost/freebsd14-static:14.2-RELEASE-amd64]
├── ID: a01d37f7777b Size: 10.4MB Top Layer of: [localhost/freebsd14-dynamic:14.2-RELEASE-amd64]
└── ID: 36b0c80ca1f7 Size: 19.21MB Top Layer of: [localhost/freebsd14-minimal:14.2-RELEASE-amd64]
Сверяем контрольные суммы образов:
podman inspect localhost/freebsd14-minimal:14.2-RELEASE-amd64
Запускаем /bin/sh в контейнере:
podman run -it localhost/freebsd14-minimal:14.2-RELEASE-amd64 /bin/sh
URL: https://people.freebsd.org/~dch/posts/2024-12-04-freebsd-con.../
Обсуждается: http://www.opennet.dev/tips/info/3262.shtml