Контейнеры#
Поддерживаются образы следующих типов:
Standard – базовая ОС Astra Linux Special Edition и стандартные утилиты из базовой системы.
Multi-service (init) – базовая ОС Astra Linux Special Edition с системой инициализации systemd.
Service – базовая ОС Astra Linux Special Edition с установленным сетевым сервисом.
Dev – базовая ОС Astra Linux Special Edition и окружение для одного из языков программирования.
Поддерживаются следующие сетевые сервисы:
Apache2;
DinD (Docker in Docker);
Dotnet sdk (.NET SDK);
HaProxy;
MariaDB;
Memcached;
MySQL;
Nginx;
Podman;
PostgreSQL;
RabbitMQ;
Redis.
Поддерживаются следующие языки программирования (в примере указаны версии из базовых репозиториев):
C++;
Erlang;
Go;
NodeJS;
OpenJDK;
Perl;
PHP;
Python;
Ruby;
Rust.
Базовый образ Standard собирается с помощью Packer в один слой.
Все остальные образы собираются через заранее написанные Dockerfile
на базе образа Standard.
Примечание
Образ Minimal находится в разработке.
Тегирование образов#
Для образов определены теги вида:
latest
– назначается на самую новую версию ОС и самый новый релиз. Например, если тег не указан при выполнении командыpodman pull
, будет загружена версия с тегомlatest
.X.Y
– назначается на самую новую мажорную версию ОС и самый новый релиз. Он соответствует тегуlatest
, если для ОС существует только одна мажорная версия. Если ОС имеет несколько мажорных версий, то тегов будет по количеству этих версий, и каждый из них будет указывать на самый новый релиз для этой версии ОС.X.Y.Z
– назначается на самую новую версию ОС и самый новый релиз. Тег перемещается с очередным релизом.X.Y.Z-mgA.B.C
– назначается на определенные версии ОС и релиз. Назначается единожды и всегда указывает на конкретный образ.
Примеры работы с образами UBI#
Скачивание образа astra/ubi17:1.7.3
#
podman pull registry.astralinux.ru/library/astra/ubi17:1.7.3
Запуск контейнера с astra/ubi17:1.7.5
в фоновом режиме с прикрепленным томом#
podman run -d \
--name alse_volume \
--mount type=bind,source="$(pwd)"/data,target=/usr/data \
registry.astralinux.ru/library/astra/ubi17:1.7.5 \
/bin/sh -c 'while true; do sleep 10; done'
Примечание
Каталог data/
должен существовать.
Запуск контейнера astra/ubi18:latest
в интерактивном режиме c удалением контейнера по завершению#
podman run -it --rm \
--name alse_mg \
registry.astralinux.ru/library/astra/ubi18:latest \
/bin/bash
Запуск контейнера astra/ubi17:1.7.5-mg13.1.2
в фоновом режиме#
podman run -d \
--name alse_mg \
registry.astralinux.ru/library/astra/ubi17:1.7.5-mg13.1.2 \
/bin/sh -c 'while true; do sleep 10; done'
Запуск контейнера ubi18-postgresql15
#
Создайте том для хранения данных:
docker volume create postgresql15
podman volume create postgresql15
Запустите контейнер с автоматическим удалением после остановки (данные, расположенные в томе, остаются на хостовой системе):
docker run -d \ --rm \ --name postgresql15 \ -e POSTGRES_PASSWORD=yoursecretpassword \ -e PGDATA=/var/lib/postgresql/15/main \ -v postgresql15:/var/lib/postgresql/15/main \ -p 5432:5432 \ registry.astralinux.ru/library/astra/ubi18-postgresql15:latest
podman run -d \ --rm \ --name postgresql15 \ -e POSTGRES_PASSWORD=yoursecretpassword \ -e PGDATA=/var/lib/postgresql/15/main \ -v postgresql15:/var/lib/postgresql/15/main \ -p 5432:5432 \ registry.astralinux.ru/library/astra/ubi18-postgresql15:latest
Подключитесь к БД:
docker exec -it postgresql15 psql
podman exec -it postgresql15 psql
Использование docker/podman secrets для контейнера ubi18-postgresql15
#
Инициализируйте кластер (только для docker):
docker swarm init
Создайте секрет:
echo "yoursecretpassword" | docker secret create postgres-passwd -
echo "yoursecretpassword" | podman secret create postgres-passwd -
Запустите контейнер с подключением секрета:
docker service create \ --name postgresql15 \ --secret postgres-passwd \ -e POSTGRES_PASSWORD=/run/secrets/postgres-passwd \ -e PGDATA=/var/lib/postgresql/15/main \ -p 5432:5432 \ registry.astralinux.ru/library/astra/ubi18-postgresql15:latest
podman run -d \ --name postgresql15 \ --secret postgres-passwd \ -e POSTGRES_PASSWORD=/run/secrets/postgres-passwd \ -e PGDATA=/var/lib/postgresql/15/main \ -v postgresql15:/var/lib/postgresql/15/main \ -p 5432:5432 \ registry.astralinux.ru/library/astra/ubi18-postgresql15:latest
Подключитесь к БД:
docker exec -it postgresql15.$TASK_NUMBER.$TASK_ID psql
Здесь:
$TASK_NUBMER
– номер задачи;$TASK_ID
– идентификатор задачи.
Вместо
$TASK_NUBMER
и$TASK_ID
необходимо указать их фактические значения. Узнать их можно в выводе следующей команды:docker ps -a | grep postgresql15
podman exec -it postgresql15 psql