Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Container Solution
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
  • Практические руководства
    • Все руководства
    • Создать ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
    • Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Создать группу ВМ с Container Optimized Image
    • Создать группу ВМ c Container Optimized Image и несколькими Docker-контейнерами
    • Изменить ВМ с Container Optimized Image
    • Настройка вывода информации из Docker-контейнера в серийный порт
    • Создать ВМ и группу ВМ с Container Optimized Image с помощью Terraform
    • Передача логов с COI в Cloud Logging
  • Концепции
    • Образ Container Optimized Image
    • Особенности работы с загрузочным диском
    • Особенности работы с сетью
    • Docker-образ
    • Политики перезапуска Docker-контейнера
    • Спецификации Docker-контейнера
    • Квоты и лимиты
  • Релизы COI
  • Правила тарификации
  • Вопросы и ответы
  • Решение проблем
  1. Концепции
  2. Спецификации Docker-контейнера

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

Статья создана
Yandex Cloud
  • COI спецификация
    • Пример COI спецификации Docker-контейнера
  • Docker Compose спецификация
    • Пример Docker Compose спецификации

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

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

Важно

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

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

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

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

Пример 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.

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

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

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

Пример 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 Имя устройства.
fs_type Тип файловой системы. Поддерживаются файловые системы ext4 и xfs.
host_path Директория, в которую монтируется диск.
partition Используемый раздел диска.

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

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • COI спецификация
  • Пример COI спецификации Docker-контейнера
  • Docker Compose спецификация
  • Пример Docker Compose спецификации