Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Container Solution
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
  • Практические руководства
    • Все руководства
    • Создать ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
    • Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Создать группу ВМ с Container Optimized Image
    • Создать группу ВМ с 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
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Подготовьте спецификацию ВМ
  • Подготовьте спецификацию Docker-контейнера
  • Получите идентификатор образа для создания ВМ
  • Создайте ВМ
  • Проверьте результат
  • Как удалить созданные ресурсы

Чтобы создать виртуальную машину из образа Container Optimized Image и настроить перенаправление потока вывода приложения в серийный порт ВМ:

  1. Подготовьте облако к работе.
  2. Подготовьте спецификацию ВМ.
  3. Подготовьте спецификацию Docker-контейнера.
  4. Получите идентификатор образа для создания ВМ.
  5. Создайте ВМ.
  6. Проверьте результат.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте облако к работе

Если нужный Docker-образ загружен в Container Registry, создайте сервисный аккаунт с ролью container-registry.images.puller на используемый реестр. От его имени ВМ на базе Container Optimized Image будет скачивать из реестра Docker-образ.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Если у вас еще нет сети или подсети, создайте их.

Необходимые платные ресурсы

В стоимость поддержки инфраструктуры входит:

  • Плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud).
  • Плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).

Подготовьте спецификацию ВМ

CLI

Чтобы подготовить спецификацию ВМ, создайте файл cloud-config-ports.yaml и заполните его следующими данными:

#cloud-config
runcmd:
  - [ sudo, chmod, 666, /dev/ttyS1]
users:
  - name: <имя пользователя>
    groups: sudo
    shell: /bin/bash
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh-authorized-keys:
      - <публичный SSH-ключ для подключения к ВМ>

В конфигурации файла задайте имя пользователя и укажите публичную часть SSH-ключа для подключения к ВМ. Пару ключей для подключения по SSH необходимо создать самостоятельно.

Подготовьте спецификацию Docker-контейнера

CLI

Чтобы подготовить спецификацию Docker-контейнера, создайте файл container-spec-ports.yaml и заполните его следующими данными:

spec:
  containers:
  - image: ubuntu
    name: app
    command: ["/bin/bash", "-c", "sleep 30 && echo 'Hello World!' > /dev/ttyS1"]
    securityContext:
      privileged: true
    stdin: false
    tty: false
    volumeMounts:
      - mountPath: /dev/ttyS1
        name: log-port
  restartPolicy: Always
  volumes:
    - name: log-port
      hostPath:
        path: /dev/ttyS1
  1. Создайте ВМ с несколькими дисками.
    1. Получите идентификатор образа для создания ВМ:

      • Bash

        IMAGE_ID=$(yc compute image get-latest-from-family container-optimized-image --folder-id standard-images --format=json | jq -r .id)
        
      • PowerShell

        > $IMAGE_ID=(yc compute image get-latest-from-family container-optimized-image --folder-id standard-images --format=json | ConvertFrom-Json).id
        
    2. Создайте ВМ:

      yc compute instance create \
        --name coi-vm-with-sp \
        --zone ru-central1-a \
        --network-interface subnet-name=<имя подсети>,nat-ip-version=ipv4 \
        --metadata-from-file user-data=cloud-config-ports.yaml,docker-container-declaration=container-spec-ports.yaml \
        --create-boot-disk image-id=$IMAGE_ID
      

      Где:

      • --name — имя ВМ.
      • --zone — зона доступности.
      • --network-interface — сетевые настройки ВМ.
      • --metadata-from-file — YAML-файлы метаданных для создания ВМ.
      • --create-boot-disk — идентификатор образа для создания загрузочного диска.

      После создания ВМ появится в списке ВМ в разделе Compute Cloud в консоли управления.

    3. Проверьте результат.

      1. В консоли управления перейдите на страницу каталога и выберите сервис Compute Cloud.
      2. Нажмите на имя нужной ВМ coi-vm-with-sp.
      3. В блоке Серийный порт выберите порт COM2. Через несколько минут на экран начнет выводиться Hello world!.

Получите идентификатор образа для создания ВМ

Чтобы получить идентификатор последнего образа для создания ВМ, выполните:

Linux (Bash)
Windows (PowerShell)
IMAGE_ID=$(yc compute image get-latest-from-family container-optimized-image \
  --folder-id standard-images \
  --format=json | jq -r .id)
$IMAGE_ID=(yc compute image get-latest-from-family container-optimized-image `
  --folder-id standard-images `
  --format=json | ConvertFrom-Json).id

Создайте ВМ

CLI

Задайте имя подсети, в которой будет создаваться ВМ, и выполните:

yc compute instance create \
  --name coi-vm-with-sp \
  --zone ru-central1-c \
  --network-interface subnet-name=<имя подсети>,nat-ip-version=ipv4 \
  --metadata-from-file user-data=cloud-config-ports.yaml,docker-container-declaration=container-spec-ports.yaml \
  --create-boot-disk image-id=$IMAGE_ID

Где:

  • --name — имя ВМ.
  • --zone — зона доступности.
  • --network-interface — сетевые настройки ВМ.
  • --metadata-from-file — YAML-файлы метаданных для создания ВМ.
  • --create-boot-disk — идентификатор образа для создания загрузочного диска.

После создания ВМ появится в списке ВМ в разделе Compute Cloud в консоли управления.

Проверьте результат

Чтобы проверить результат настройки вывода информации из Docker-контейнера в серийный порт:

  1. В консоли управления перейдите на страницу каталога и выберите сервис Compute Cloud.
  2. Нажмите на имя нужной ВМ coi-vm-with-sp.
  3. В блоке Последовательный порт выберите порт COM2. Через несколько минут на экран начнет выводиться Hello world!.

Подробнее о работе с ВМ читайте в пошаговых инструкциях.

Как удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы:

  1. Удалите ВМ.
  2. Если вы зарезервировали для ВМ публичный статический IP-адрес, удалите его.

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

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Подготовьте спецификацию ВМ
  • Подготовьте спецификацию Docker-контейнера
  • Получите идентификатор образа для создания ВМ
  • Создайте ВМ
  • Проверьте результат
  • Как удалить созданные ресурсы