Skip to content

Virtual Machine


A Virtual Machine resource lets you create and configure VM-based compute for a lab sandbox. Use a VM when your lab needs a full operating system environment, OS-level services, package installation, system configuration, or workloads that do not fit a container-only model.

Through the UI, you can define the VM image, resources, startup script, environment variables, networking, ports, disks, volumes, and health checks without writing configuration files. You can also connect VMs to sandbox networks and use them as targets for terminal and service tabs.

VMs are useful for labs that need stronger OS isolation or a closer match to real infrastructure while still using the same sandbox workflow as containers and networks.

Virtual Machine resources can be created in the Sandbox tab. To create a new Virtual Machine resource, navigate to the Sandbox tab and click the + button. Select Virtual Machine from the dropdown menu.

Create a new virtual machine resource

Start by naming the VM. This name is internal and becomes the VM hostname at runtime. The form shows the computed hostname so you can see how other sandbox resources can reach the VM.

Choose an image from the preset list or enter your own public or private image. For private images, add the registry username and password fields in the Image section.

Select a preset for the VM

To edit a Virtual Machine resource, select it from the list of existing sandbox resources in the Sandbox tab. Click the VM you want to edit, make your changes in the configuration panel, and then click Add changes to save your updates.

The Virtual Machine form is organized into collapsible sections. The Image and Resources sections are expanded by default. All other sections are collapsed and can be expanded by clicking on them.

FieldRequired?DefaultDescription
ImageVM image to boot
UsernameOptional username for pulling a private image
PasswordOptional password or token for pulling a private image
FieldRequired?DefaultDescription
Memory2048Memory allocated to the VM in MB
CPU2000CPU allocation for the VM
FieldRequired?DefaultDescription
Startup ScriptScript that runs once when the VM boots
FieldRequired?DefaultDescription
Environment VariablesKey-value pairs exported into the VM environment
FieldRequired?DefaultDescription
DNS ServerOptional DNS server IP address used by the VM
FieldRequired?DefaultDescription
NetworkExisting network resource to attach to the VM
IP AddressOptional static IP address in the selected network
NameOptional name for this VM network attachment
AliasesOptional DNS aliases for the VM on the selected network
FieldRequired?DefaultDescription
LocalPort the app listens on inside the VM
HostOptional host port to bind
ProtocoltcpProtocol type: TCP or UDP
FieldRequired?DefaultDescription
RangeConsecutive port range to expose, for example 3000-3010
Enable hostfalseMap the range to host ports
ProtocoltcpProtocol type: TCP or UDP
FieldRequired?DefaultDescription
DestinationAbsolute path inside the VM where the disk is mounted
Size (GB)10Disk size in gigabytes
FieldRequired?DefaultDescription
SourcePath on the host or managed volume name
DestinationIntended path inside the VM
Read onlyfalseAttach the share as read-only
FieldRequired?DefaultDescription
Timeout30sHealth check timeout

Health checks support three modes:

HTTP

FieldRequired?DefaultDescription
AddressHealth check URL
MethodGETHTTP method
BodyRequest body
HeadersHTTP headers
Success codes200Expected success codes

TCP

FieldRequired?DefaultDescription
AddressHealth check address

Exec

FieldRequired?DefaultDescription
CommandHealth check command
ScriptHealth check script
Exit code0Expected exit code

The Virtual Machine resource adds full-OS compute to your sandbox. Use it for labs that need VM behavior, system services, disks, or runtime setup beyond what a container provides.

For most interactive VM labs, attach the VM to a sandbox network, configure the required ports or service tabs, and add a terminal tab when learners need shell access.