- содержит единственный исполняемый файл и его зависимости (нет shell’а, нет процесса init);
- корневая файловая система — в режиме только для чтения (записи изолированы и обслуживаются примонтированными томами);
- у файловой системы нет пользователя или группы-владельца (всем владеет единственный пользователь, у него есть доступ на чтение всего);
- отключены timestamps и capabilities для файловой системы;
- сборка воспроизводится и каждый раз создаёт только такой же образ.
Для работы с такими контейнерами — микроконтейнерами Oracle — и предназначены утилиты, исходный код которых был открыт:
- smith — написанная на Go утилита для сборки микроконтейнеров из пакетов RPM (и репозиториев yum) или готовых контейнеров Docker, результатом становится образ в формате OCI (Open Container Initiative), а также поддерживается работа с образами из репозиториев Docker;
- crashcart — написанная на Rust утилита для загрузки (sideload) в существующий контейнер образа с Linux-приложениями (бинарными файлами) для отладки приложения внутри контейнера;
- railcar — написанная на Rust реализация спецификации исполняемой среды контейнера (oci-runtime), т.е. аналог эталонного решения runC, но позиционируемый авторами как более безопасный.
Исходный код всех проектов распространяется под двумя Open Source-лицензиями: Universal Permissive License 1.0 и Apache License 2.0.