Updating a VM with a Container Optimized Image
Written by
Updated at January 31, 2024
Change the Docker container settings on the VM created from a Container Optimized Image.
Management console
CLI
- In the management console
, select the folder where the VM was created. - In the list of services, select Compute Cloud.
- Click the row with the VM to update.
- Click Edit VM in the top panel.
- Change the parameters in the Docker container settings section.
- Click Save changes.
-
View a description of the CLI command for updating VMs:
yc compute instance update-container --help
-
Get the unique ID of the VM. To do this, click the row with the VM name under Compute Cloud in the management console
or use this CLI command:yc compute instance list
Result:
+----------------------+-------+-------------------+---------+----------------------------------+-------------+ | ID | NAME | ZONE ID | STATUS | EXTERNAL IP | INTERNAL IP | +----------------------+-------+-------------------+---------+----------------------------------+-------------+ | epdbf646ge5q******** | my-vm | ru-central1-b | RUNNING | 84.201.155.117 | 172.18.0.21 | +----------------------+-------+-------------------+---------+----------------------------------+-------------+
-
Update the VM.
Depending on how the VM was created, there are several ways to update it:
Creation method Update the VM using --container-image
Update the VM using --docker-compose-file
Using the parameters --container-*
The old Docker container is deleted and a new one is created. The old Docker container is deleted and new Docker containers are created (described in the docker-compose.yaml file). Using the docker-compose.yaml file specification The old Docker containers (described in the docker-compose.yaml file) are deleted and a new Docker container is created, which is described using the --container-*
parameters.Only new Docker containers (those added to the docker-compose.yaml file) or modified Docker containers are created. The Docker containers missing from the new docker-compose.yaml file are deleted. -
Update the VM by setting new parameters:
yc compute instance update-container epdbf646ge5q******** \ --container-name=my_vm_new_version \ --container-image=cr.yandex/mirror/ubuntu:18.04 \ --container-env=KEY1=VAL1,KEY2=VAL2 \ --remove-container-env=KEY3 \ --container-stdin=false \ --container-restart-policy=Never
Where:
--container-name
: Name of the Docker container.--container-image
: Name of the Docker image used to launch the Docker container.--container-env
: Environment variables available in the Docker container.--remove-container-env
: Exclude the environment variables whose keys are specified in the parameter.--container-command
: Command to run upon Docker container launch.--container-stdin
: Allocate the buffer for the input stream while running the Docker container.--container-restart-policy
: Parameters for the command specified in--container-command
.--container-privileged
: Launching the Docker container in privileged mode.
Result:
done (2s) id: epdbf646ge5q******** folder_id: b1g88tflru0e******** created_at: "2023-03-13T09:44:03Z" name: my-vm ...
-
Update the VM by setting the specifications of multiple Docker containers:
yc compute instance update-container epdbf646ge5q******** --docker-compose-file=<file_path>
Where
--docker-compose-file
is the path to the file with the Docker container specification.Result:
done (2s) id: fhma9omhj2e7******** folder_id: b1g88tflru0e******** created_at: "2023-03-13T17:08:48Z" name: coi-vm ...
-