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