Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Container Solution
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Образ Container Optimized Image
    • Особенности работы с дисками
    • Особенности работы с сетью
    • Docker-образ
    • Политики перезапуска Docker-контейнера
    • Спецификации Docker-контейнера
    • Квоты и лимиты
  • Правила тарификации
  • Релизы Container Optimized Image
  • Вопросы и ответы
  • Решение проблем

В этой статье:

  • COI-спецификация
  • Пример COI-спецификации Docker-контейнера
  • Примеры использования
  • Docker Compose-спецификация
  • Пример Docker Compose-спецификации
  • Примеры использования
  1. Концепции
  2. Спецификации Docker-контейнера

Спецификации Docker-контейнера

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 21 апреля 2025 г.
  • COI-спецификация
    • Пример COI-спецификации Docker-контейнера
    • Примеры использования
  • Docker Compose-спецификация
    • Пример Docker Compose-спецификации
    • Примеры использования

Для описания конфигурации запуска Docker-контейнера существует два способа:

  • COI-спецификация, позволяет запустить только один Docker-контейнер.
  • С помощью Docker Compose-спецификации можно задать более гибкую конфигурацию, например запуск нескольких Docker-контейнеров и необходимых служб.

Важно

Одновременно может использоваться только одна из спецификаций: COI или Docker Compose.

COI-спецификацияCOI-спецификация

Docker-контейнер в Container Optimized Image описывается в спецификации (YAML-файле), основанной на спецификации подов Kubernetes.

При создании виртуальной машины на базе Container Optimized Image из консоли управления или CLI спецификация генерируется автоматически на основе указанных данных. Для создания группы ВМ на базе Container Optimized Image спецификацию необходимо составить вручную. Пример спецификации и необходимые ключи описаны ниже.

Пример COI-спецификации Docker-контейнераПример COI-спецификации Docker-контейнера

COI-спецификация – это YAML-файл со следующим содержанием:

spec:
  containers:
  - command:
    - sleep
    args:
    - 100000
    env:
    - name: MYENV
      value: myvalue
    image: cr.yandex/mirror/ubuntu:16.04
    name: my-container
    securityContext:
      privileged: false
    stdin: false
    tty: false
    volumeMounts:
      - mountPath: /home/yc-user/cache
        name: cache-volume
      - mountPath: /home/yc-user/data
        name: data-volume
  restartPolicy: Always
  volumes:
    - name: cache-volume
      emptyDir:
        medium: Memory
    - name: data-volume
      hostPath:
        path: /data

Где:

  • command – команда, выполняемая при запуске Docker-контейнера.
  • args – аргументы, передаваемые запускаемой в Docker-контейнере команде.
  • env – переменные окружения, доступные внутри Docker-контейнера.
  • image – имя Docker-образа, на основе которого будет создан и запущен Docker-контейнер.
  • name – имя запускаемого Docker-контейнера.
  • securityContext – настройки безопасности и контроля доступа внутри Docker-контейнера. Поддерживается только возможность запуска привилегированного Docker-контейнера.
  • privileged – запуск Docker-контейнера в привилегированном режиме. Процессы в привилегированных Docker-контейнерах получают доступ ко всем системным устройствам и эквивалентны использованию root-прав на ВМ. Значение по умолчанию — false.
  • stdin – буфер для потока ввода во время выполнения Docker-контейнера. Поток ввода будет связан с запущенным Docker-контейнером. Значение по умолчанию — false.
  • tty – выделение TTY для Docker-контейнера. Значение по умолчанию - false.
  • restartPolicy – политика перезапуска Docker-контейнера.
  • volumeMounts – список томов для монтирования внутри Docker-контейнера.
  • mountPath – путь в Docker-контейнере, по которому будет смонтирован указанный том.
  • volumes – описание томов, используемых в спецификации.
  • emptyDir – пустая директория во временной файловой системе tmpfs, которая создается в оперативной памяти ВМ. Содержимое этой директории удаляется при остановке Docker-контейнера, в который она смонтирована, а также при перезагрузке ВМ. Для использования tmpfs необходимо указать параметр medium: Memory. Размер тома ограничен количеством оперативной памяти, выделенной для ВМ.
  • hostPath – директория из файловой системы ВМ, которая будет смонтирована в Docker-контейнер.
  • path – путь к директории hostPath.

Примеры использованияПримеры использования

  • Создание ВМ и группы ВМ с Container Optimized Image с помощью Terraform
  • Настройка вывода информации из Docker-контейнера в серийный порт

Docker Compose-спецификацияDocker Compose-спецификация

Инструкции для запуска Docker-контейнеров и конфигурации сервисов указываются в файле спецификации docker-compose.yaml, согласно документации Docker.

Подробнее о запуске нескольких Docker-контейнеров читайте в разделе Создание ВМ с Container Optimized Image и несколькими Docker-контейнерами.

Пример Docker Compose-спецификацииПример Docker Compose-спецификации

Docker Compose-спецификация – это YAML-файл docker-compose.yaml со следующим содержанием:

version: '3.7'
services:
  app1:
    container_name: nginx
    image: "nginx"
    ports:
      - "80:80"
    restart: always
  app2:
    container_name: redis
    image: "redis"
    restart: always
    volumes:
      - /mnt/logs:/logs
      - /mnt/data:/data

x-yc-disks:
  - device_name: compute-disk-data
    fs_type: ext4
    host_path: /mnt/data
    partition: 1
  - device_name: compute-disk-data
    fs_type: ext4
    host_path: /mnt/logs
    partition: 2

Где:

  • version – тег версии спецификации, с которого должен начинаться файл.
  • services – раздел, в котором описываются сервисы.
  • container_name – имя запускаемого Docker-контейнера.
  • image – имя Docker-образа, на основе которого будет создан и запущен Docker-контейнер.
  • ports – используется для перенаправления портов сервиса. Указывается в виде: <порт_компьютера>:<порт_контейнера>.
  • restart – настройка политики перезапуска Docker-контейнера.
  • volumes – описание томов, используемых в Docker-контейнере.
  • x-yc-disks – раздел, в котором описываются подключаемые диски. Представляет собой расширение спецификации Docker Compose. Используется при подготовке к запуску Docker-контейнеров, перед запуском Docker Compose. Docker Compose пропускает этот раздел.
  • device_name – имя устройства, отличается от имени диска. Используется на ВМ для поиска диска по дереву /dev/disk/by-id/virtio-<device_name>. Указывается в флагах и командах CLI по добавлению дисков на ВМ при помощи параметра device-name или в консоли управления при подключении диска к ВМ.
  • fs_type – тип файловой системы. Поддерживаются файловые системы ext4 и xfs.
  • host_path – директория, в которую монтируется диск.
  • partition – используемый раздел диска.

Примеры использованияПримеры использования

  • Создание ВМ с Container Optimized Image и несколькими Docker-контейнерами
  • Создание ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
  • Передача логов с Container Optimized Image в Yandex Cloud Logging

Была ли статья полезна?

Предыдущая
Политики перезапуска Docker-контейнера
Следующая
Квоты и лимиты
Проект Яндекса
© 2025 ООО «Яндекс.Облако»