Для запуска во FreeBSD контейнеров в формате OCI, в том числе созданных для Linux, можно использовать доступный в пакетах инструментарий Podman.
pkg install -y podman-suiteСодержимое контейнеров хранится в каталоге /var/db/containers, для которого можно создать отдельный раздел ZFS:
zfs create -o mountpoint=/var/db/containers zroot/containers
Используем пакетный фильтр PF для настройки доступа к сервисам в контейнерах по сети:
cp /usr/local/etc/containers/pf.conf.sample /etc/pf.conf
sysctl net.pf.filter_local=1Прописываем имеющийся сетевой интерфейс и меняем настройки на свой вкус в /etc/pf.conf. Активируем PF.
service pf enable
service pf startАктивируем Linuxulator:
service linux enable
service linux startЗапускаем контейнер с FreeBSD 14.3 с GitHub и выполняем в нём команду "freebsd-version":
sudo podman run ghcr.io/freebsd/freebsd-runtime:14.3 freebsd-version
14.3-RELEASEЗапускаем контейнер с Alpine Linux с docker.io и выполняем в нём команду "cat /etc/os-release":
sudo podman run --rm --os=linux docker.io/alpine cat /etc/os-release | head -1
NAME="Alpine Linux"Запускаем контейнер с Caddy с docker.io и запускаем реализованный в нём сетевой сервис:
sudo podman run --os=linux -p 80:80 -v $PWD/website:/usr/share/caddy -v caddy_data:/data docker.io/caddy
URL: https://freebsdfoundation.org/blog/oci-containers-on-freebsd/
Обсуждается: http://www.opennet.dev/tips/info/3284.shtml
Меня больше интересовала возможность запускать через podman-compose существующие docker-compose.yml. У меня практически получилось запустить инфраструктуру, но пришлось править сам yml, порой не понимал переменную среды DOCKER_USER, которая упоминалась в yml.
А локальную сборку pod image и создание локального репозитория для неё, чтобы полностью локально вот так запускать - подскажешь?