A set of changes has been accepted in the containerd project, integrating support for the runj runtime and enabling the use of OCI-compatible container images based on Linux, such as Docker images, on FreeBSD. The comments on the changes provide an example of a successful launch on FreeBSD using an Alpine Linux image. $ 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
Despite the experimental status of the runj project and its currently limited functionality, this project may still be useful for personal experiments, simplifying proof-of-concept modeling, local development, running tests before deployment to cloud systems, and validating functionality in cases where transitioning to tested and production-ready solutions on other platforms is not possible, but there is a need for containerization. It requires installed jail, jls, jexec, and ps.
It is worth noting that runj is a personal project of Samuel Karp, an engineer at Amazon who develops the Bottlerocket Linux distribution and container isolation technologies for AWS, and is also an independent member of the Technical Oversight Board for the OpenContainers project. Once runj reaches the necessary level, it could be used to replace the default runtime in Docker and Kubernetes systems, allowing the execution of containers on FreeBSD instead of Linux. Currently, commands for creating, deleting, launching, forcibly stopping, and evaluating the state of containers, as well as configuring processes, mount points, and hostnames, have been implemented in the OCI runtime.
Source: opennet.ru
