Profiles
A profile in Colima is an independent instance of a virtual machine with its own configuration, runtime, and container data. Profiles allow you to run multiple isolated environments simultaneously, each with different settings tailored to specific use cases.
Understanding Profiles
Each profile is a completely separate Colima instance with:
- Its own VM resources (CPU, memory, disk)
- Its own container runtime (Docker, Containerd, or Incus)
- Its own containers, images, and volumes
- Its own configuration file at
~/.colima/<profile>/colima.yaml
The default profile is named default and is used when no profile is specified.
Creating Profiles
Create a new profile by specifying a name when starting Colima:
# Create a profile named "dev"
colima start dev
# Create a profile with custom resources
colima start dev --cpus 4 --memory 8
# Create a profile with Kubernetes
colima start k8s --kubernetes
# Create a profile with containerd runtime
colima start containerd --runtime containerd
Each profile name creates a new, independent instance.
Listing Profiles
View all profiles and their status:
colima list
Example output:
PROFILE STATUS ARCH CPUS MEMORY DISK RUNTIME
default Running aarch64 4 8GiB 100GiB docker
dev Running aarch64 2 4GiB 60GiB docker
k8s Stopped aarch64 4 8GiB 100GiB docker
Starting and Stopping Instances
Starting an Instance
Start an existing profile:
# Start the default profile
colima start
# Start a named profile (profile as argument)
colima start dev
# Start using the --profile flag
colima start --profile dev
Stopping an Instance
Stop a running profile:
# Stop the default profile
colima stop
# Stop a named profile (profile as argument)
colima stop dev
# Stop using the --profile flag
colima stop --profile dev
Restarting an Instance
Restart a profile:
# Restart the default profile
colima restart
# Restart a named profile
colima restart dev
Deleting Instances
Soft Delete (Preserve Container Data)
Delete the VM instance while retaining container data (images, volumes):
# Delete the default profile
colima delete
# Delete a named profile
colima delete dev
This removes the VM but preserves container data. When you recreate the profile with the same name, the container data will be restored.
Complete Teardown
Delete the VM instance and all associated data including containers, images, and volumes:
# Completely remove the default profile
colima delete --data
# Completely remove a named profile
colima delete dev --data
# Force delete without confirmation
colima delete dev --data --force
The --data flag ensures a complete cleanup, removing:
- The virtual machine
- All container images
- All container volumes
- All configuration files
Use this when you want to start fresh or reclaim disk space.
Using the –profile Flag
Most Colima commands support specifying the profile in two ways:
Profile as Argument
Commands like start, stop, delete, and restart accept the profile name as an argument:
colima start dev
colima stop dev
colima delete dev
colima restart dev
Profile as Flag
All commands support the --profile (or -p) flag:
colima start --profile dev
colima stop --profile dev
colima status --profile dev
colima ssh --profile dev
colima list --profile dev
The --profile flag is the universal method that works with every command.
Common Use Cases
Different Environments
# Development: more resources, SSH agent forwarding
colima start dev --cpus 4 --memory 8 --ssh-agent
# CI: minimal resources
colima start ci --cpus 2 --memory 2
Multiple Container Runtimes
# Docker runtime (default)
colima start docker
# Containerd runtime
colima start containerd --runtime containerd
# Incus runtime
colima start incus --runtime incus
Testing Different Architectures
# Native architecture
colima start native
# x86_64 on Apple Silicon
colima start x86 --arch x86_64
Kubernetes Development
# Kubernetes cluster
colima start k8s --kubernetes --cpus 4 --memory 8
# Multiple Kubernetes versions
colima start k8s-128 --kubernetes --kubernetes-version v1.28.3+k3s1
colima start k8s-127 --kubernetes --kubernetes-version v1.27.7+k3s1
Docker Context with Profiles
Each profile creates its own Docker context. Switch between them:
# List Docker contexts
docker context ls
# Use a specific profile's context
docker context use colima-dev
# Use the default profile's context
docker context use colima