Создание и запуск контейнеров
Пошаговое руководство по созданию, настройке параметров запуска, подключению дисков и управлению контейнерами через консоль и API.
Порядок создания контейнера
Для запуска нового контейнера перейдите в раздел Консоль → Контейнеры и нажмите Создать контейнер.
Процесс создания состоит из 5 последовательных шагов:
- Имя контейнера: указание уникального имени контейнера в проекте.
- Выбор OCI-образа: выбор предварительно добавленного образа в статусе
Ready. - Параметры запуска: исполняемая команда, аргументы, переменные окружения и политика перезапуска.
- Подключение постоянного диска (Обязательно): выбор тома для размещения слоя Stateful OverlayFS.
- Сетевой интерфейс VPC (Обязательно): привязка к частной сети для выделения статического IP-адреса.
Настройка параметров запуска
1. Имя контейнера
Укажите уникальное имя контейнера внутри проекта (например, api-gateway-01).
2. Выбор OCI-образа
Выберите образ в статусе Ready (см. Управление образами).
3. Команда и переменные окружения
- Команда (Command): исполняемый бинарный файл (например,
/usr/bin/python3илиnginx). - Аргументы (Args): параметры запуска (например,
-m http.server 8080или-g "daemon off;"). - Переменные окружения (Environment): список переменных формата
KEY=value, по одной на строку. - Политика перезапуска (Restart Policy):
always(по умолчанию) — автоматический перезапуск при любом завершении работы процесса.on_failure— перезапуск только при ненулевом коде возврата.never— отключение автоматического перезапуска.
4. Диски данных (Volumes)
[!IMPORTANT] Для создания контейнера необходимо выбрать как минимум один свободный том. Первый выбранный том автоматически используется как постоянное хранилище для слоя Stateful OverlayFS. Все файлы и конфигурации, созданные во время работы контейнера, будут сохранены на этом диске.
5. Сетевые интерфейсы (VPC)
[!IMPORTANT] Необходимо выбрать как минимум один свободный сетевой интерфейс. Контейнер всегда создаётся с выделенным статическим приватным IP-адресом в вашем VPC.
Выберите свободный интерфейс NetworkInterface из вашего VPC для назначения контейнеру фиксированного приватного IP-адреса.
Создание через REST API
Создание контейнеров можно полностью автоматизировать через Selene REST API:
curl -X POST "https://api.microsrv.ru/api/v1/projects/${PROJECT_ID}/containers" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"region_id": "ru-central1",
"flavor_id": "flavor-std-2",
"image_id": "img-nginx-alpine-ulid",
"name": "web-proxy-01",
"command": ["nginx"],
"args": ["-g", "daemon off;"],
"env": {
"PORT": "8080",
"NODE_ENV": "production"
},
"restart_policy": "always",
"volume_ids": ["vol-01j9a4k..."],
"network_interface_ids": ["ni-01j9a4m..."]
}'
Сетевое взаимодействие и публикация
- Внутри VPC: Контейнер обращается к другим контейнерам и виртуальным машинам по внутреннему IP-адресу (
10.x.x.x). - Исходящий доступ в интернет: Контейнер отправляет запросы к внешним сервисам, Git и API через eBPF Outbound NAT без необходимости выделения публичного IP.
- Входящий веб-трафик: порт контейнера можно опубликовать через HTTPS-шлюз с доменом
<name>.msrv.spaceи TLS-сертификатом.
Управление жизненным циклом
- Детальная информация: на странице контейнера (
/console/containers/<id>) отображаются статус песочницы, привязанные диски и назначенный IP-адрес. - Изменение конфигурации: через API поддерживается обновление параметров контейнера (
PATCH /api/v1/containers/<id>). - Удаление: при удалении контейнера освобождаются vCPU/RAM и сетевой интерфейс, а прикреплённый том NVMe сохраняется и может быть примонтирован к новому контейнеру или ВМ.