Creating a VM from a Container Optimized Image
Create a VM from a Container Optimized Image and run a Docker container on it.
Getting started
If the required Docker image is pushed to 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 on behalf of this account.
Create a VM with a Docker container from a Container Optimized Image
-
In the management console
, select the folder where you want to create your VM. -
From the list of services, select Compute Cloud.
-
In the left-hand panel, select
Virtual machines. -
Click Create virtual machine.
-
Under Boot disk image, navigate to the Container Solution tab.
-
Click Configure.
-
In the Docker container settings window that opens, set the parameters using suggestions:
-
Specify the Docker image to be used to run the Docker container on the VM.
-
Select the Restart policy field value for the Docker container:
Always
: Always restart the Docker container when it stops.On-Failure
: Restart the Docker container only if it shuts down with a non-zero return code.Never
: Do not restart the Docker container automatically.
-
Fill in the remaining fields, if required.
-
Click Apply.
-
-
Follow this guide to configure the remaining VM parameters.
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder through the --folder-name
or --folder-id
parameter.
-
View the description of the CLI command to create a VM from a Container Optimized Image:
yc compute instance create-with-container --help
-
Create a VM from a Container Optimized Image:
yc compute instance create-with-container \ --name my-vm \ --zone ru-central1-b \ --ssh-key ssh-key.pub \ --service-account-name my-robot \ --platform standard-v3 \ --create-boot-disk size=30 \ --public-ip \ --container-name=my-app \ --container-image=cr.yandex/mirror/ubuntu:16.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 find out the minimum boot disk size required to install the image, run one of these commands:
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
parameter. -
--public-ip
: Public IP address allocated to the VM. -
--container-name
: Docker container name. -
--container-image
: Name of the Docker image used to run 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. -
What's next
- Read a detailed description of a Container Optimized Image.
- To learn what else you can do with a Container Optimized Image, see our step-by-step guides.