Yandex Cloud
Search
Contact UsGet started
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • AI for business
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
© 2025 Direct Cursus Technology L.L.C.
Tutorials
    • All tutorials
    • Setting up a Managed Service for PostgreSQL connection from a container in Serverless Containers
    • Creating a VM from a Container Optimized Image
    • Creating a VM from a Container Optimized Image with an additional volume for a Docker container
    • Creating an instance group from a Container Optimized Image with multiple Docker containers
    • Creating an instance group from a Container Optimized Image
    • Creating a VM from a Container Optimized Image with multiple Docker containers
    • Updating a Container Optimized Image VM
    • Configuring data output from a Docker container to a serial port

In this article:

  • Getting started
  • Create a Docker container VM from a Container Optimized Image
  1. Container infrastructure
  2. Creating a VM from a Container Optimized Image

Creating a VM from a Container Optimized Image

Written by
Yandex Cloud
Improved by
Danila N.
Updated at November 10, 2025
  • Getting started
  • Create a Docker container VM from a Container Optimized Image

Create a VM from a Container Optimized Image and run a Docker container on it.

Getting startedGetting started

If the required Docker image has been pushed to Yandex Container Registry, create a service account with the container-registry.images.puller role for the registry in use. A Container Optimized Image VM will pull the Docker image from the registry under this account.

Create a Docker container VM from a Container Optimized ImageCreate a Docker container VM from a Container Optimized Image

Management console
CLI with the help of parameters
CLI with the help of a specification file
  1. In the management console, select the folder where you want to create your VM.

  2. In the list of services, select Compute Cloud.

  3. In the left-hand panel, select Virtual machines.

  4. Click Create virtual machine.

  5. Select Advanced setup.

  6. Under Boot disk image, navigate to the Container Solution tab.

  7. Click Configure.

  8. In the Docker container settings window that opens, set the parameters using the suggestions:

    • Optionally, enter the Name of the Docker container you will run on the VM. Follow these naming requirements:

      • It must be from 2 to 63 characters long.
      • It can only contain lowercase Latin letters, numbers, and hyphens.
      • It must start with a letter and cannot end with a hyphen.
    • Specify the Docker image to use for running the Docker container on the VM. You can do this in one of these ways:

      • By selecting one of the available images. To do this, start typing the image name in the search bar. The image search reads all available cloud folders.
      • By specifying the image name manually. To do this, click Enter link and enter the image name. You can specify an image from the Container Registry or any publicly available Docker image library, such as Docker Hub.
    • Optionally, specify the executable to run when the Docker container starts in the Command field.

    • Optionally, set Command arguments.

    • Optionally, specify the Environment variables you want to make available in the Docker container, in key:value format.

    • Select the Restart policy field value for the Docker container:

      • Always: Always restart the Docker container when it stops.
      • On-Failure: Only restart the Docker container if it shuts down with a non-zero return code.
      • Never: Do not restart the Docker container automatically.
    • Optionally, enable Attach a TTY to the Docker container to use the command shell in the Docker container.

    • Optionally, enable Allocate an stdin buffer for a running Docker container to link the input stream to the running Docker container.

    • Optionally, enable Run Docker container in privileged mode to allow the Docker container processes to access all VM resources.

  9. Click Apply.

  10. Use this guide to configure the remaining VM parameters.

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

To create a VM and set the Docker container parameters via the YC CLI:

  1. View the command description:

    yc compute instance create-with-container --help
    
  2. Run this command:

    yc compute instance create-with-container \
      --name my-vm \
      --zone ru-central1-b \
      --ssh-key ssh-key.pub \
      --service-account-name my-robot \
      --create-boot-disk size=30 \
      --public-ip \
      --platform standard-v3 \
      --container-name=my-app \
      --container-image=cr.yandex/mirror/ubuntu:20.04 \
      --container-command=sleep \
      --container-arg="1000" \
      --container-env=KEY1=VAL1,KEY2=VAL2 \
      --container-privileged
    

    Where:

    • --name: VM name.

    • --zone: Availability zone.

    • --ssh-key: Contents of the public key file.

    • --service-account-name: Service account name.

    • --create-boot-disk size: Boot disk size.

      To get the minimum boot disk size required for installing an image, run this command:

      • yc compute image get-latest-from-family container-optimized-image --folder-id standard-images if you are installing a Container Optimized Image.
      • yc compute image get-latest-from-family container-optimized-image-gpu --folder-id standard-images if you are installing a GPU Container Optimized Image.

      You can find the minimum boot disk size in the min_disk_size property.

    • --public-ip: Public IP address allocated to the VM.

    • --container-name: Docker container name.

    • --container-image: Name of the Docker image for running the Docker container.

    • --container-command: Command to run when you start the Docker container.

    • --container-arg: Parameters for the command specified in --container-command.

    • --container-env: Environment variables available in the Docker container.

    • --container-privileged: Run the Docker container in privileged mode.

    Result:

    done (17s)
     id: epdbf646ge5q********
     folder_id: b1g88tflru0e********
     created_at: "2023-03-13T09:44:03Z"
     name: my-vm
    ...
    

Once created, the VM will appear in the VM list under Compute Cloud in the management console. For more information about working with VMs, see our step-by-step guides here.

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

To create a VM and set the Docker container parameters using a specification file:

  1. View the command description:

    yc compute instance create-with-container --help
    
  2. Create a Docker container spec file. Save the following data to the docker-spec.yaml file:

    spec:
      containers:
      - command:
        - sleep
        args:
        - 100000
        image: cr.yandex/mirror/ubuntu:20.04
        name: my-container
        securityContext:
         privileged: true
    
  3. Run this command:

    yc compute instance create-with-container \
      --coi-spec-file docker-spec.yaml \
      --name my-vm \
      --zone ru-central1-b \
      --ssh-key ssh-key.pub \
      --create-boot-disk size=30 \
      --service-account-name my-service-account \
      --public-ip
    

    Where:

    • --coi-spec-file: Path to the Docker container specification file.

    • --name: VM name.

    • --zone: Availability zone.

    • --ssh-key: Contents of the public key file.

    • --create-boot-disk size: Boot disk size.

      To get the minimum boot disk size required for installing an image, run this command:

      • yc compute image get-latest-from-family container-optimized-image --folder-id standard-images if you are installing a Container Optimized Image.
      • yc compute image get-latest-from-family container-optimized-image-gpu --folder-id standard-images if you are installing a GPU Container Optimized Image.

      You can find the minimum boot disk size in the min_disk_size property.

    • --service-account-name: Service account name.

    • --public-ip: Public IP address allocated to the VM.

    Result:

    done (1m40s)
     id: epde18u4mahl********
     folder_id: b1g7gvsi89m3********
     created_at: "2023-03-13T13:50:17Z"
     name: my-vm
     ...
    

Once created, the VM will appear in the VM list under Compute Cloud in the management console. For more information about working with VMs, see our step-by-step guides here.

Was the article helpful?

Previous
Setting up a Managed Service for PostgreSQL connection from a container in Serverless Containers
Next
Creating a VM from a Container Optimized Image with an additional volume for a Docker container
© 2025 Direct Cursus Technology L.L.C.