Создание ВМ с Container Optimized Image и несколькими Docker-контейнерами
В этой инструкции вы создадите виртуальную машину из образа Container Optimized Image с несколькими Docker-контейнерами внутри. Для создания ВМ будет использована Docker Compose спецификация.
Перед началом работы
Если нужный Docker-образ загружен в Yandex Container Registry, то создайте сервисный аккаунт с ролью container-registry.images.puller на используемый реестр. От его имени ВМ на базе Container Optimized Image будет скачивать из реестра Docker-образ.
Создайте ВМ с несколькими Docker-контейнерами
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать ВМ на базе образа Container Optimized Image и несколькими Docker-контейнерами.
-
Посмотрите описание команды CLI для создания ВМ на базе образа Container Optimized Image:
yc compute instance create-with-container --help
-
Подготовьте спецификацию Docker-контейнеров. Сохраните следующие данные в файл
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
-
Создайте ВМ с несколькими Docker-контейнерами:
yc compute instance create-with-container \ --name my-vm \ --zone ru-central1-a \ --ssh-key ssh-key.pub \ --create-boot-disk size=30 \ --network-interface subnet-name=<имя_подсети>,nat-ip-version=ipv4 \ --service-account-name default-sa \ --docker-compose-file docker-compose.yaml
Где:
--name
— имя ВМ.--zone
— зона доступности.--ssh-key
— путь к файлу и имя файла с открытым ключом.--create-boot-disk size
— размер загрузочного диска. Должен быть не менее 30 ГБ.--network-interface
— сетевые настройки ВМ.--service-account-name
— имя сервисного аккаунта.--docker-compose-file
— YAML-файл со спецификацией контейнеров.
После создания ВМ появится в списке ВМ в разделе Compute Cloud в консоли управления
. -
Проверьте результат.
-
Посмотрите список запущенных Docker-контейнеров:
sudo docker ps -a
Результат:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c79b******** nginx "nginx -g 'daemon of…" 16 seconds ago Up 14 seconds 0.0.0.0:80->80/tcp nginx 3ac5******** redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 6379/tcp redis