Использование инструментария Podman для запуска контейнеров во FreeBSD

Itnull

Admin
Регистрация
22.05.13
Сообщения
28.855
Реакции
13.353
Веб-сайт
itnull.me
Начиная с выпуска FreeBSD 14.2 стали формироваться образы контейнеров в
формате 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

    При желании использовать UFS вместо 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-RELEASE/amd64/Latest
    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
 

Создайте аккаунт или войдите в систему, чтобы комментировать

Вы должны быть зарегистрированным, чтобы оставить комментарий

Создать аккаунт

Создайте аккаунт в нашем сообществе.

Войти

У вас уже есть аккаунт? Войдите здесь.

Назад
Сверху Снизу