Gen1 and Gen2 are both CircleCI resource class families, but they are not drop-in replacements for each other. Some sizes, platforms, and features differ by executor.
This article puts the main Gen1 vs Gen2 differences in one place for Docker, Linux VM, and Remote Docker.
For full CPU, RAM, and credit rates, see the price list and the configuration reference.
At a glance
| Topic | Gen1 | Gen2 |
|---|---|---|
| Naming | Classic names (small, medium, large, …) |
Names end in .gen2. Available sizes depend on the executor |
| Docker sizes (x86) | small through 2xlarge+ |
small.gen2 through 2xlarge+.gen2 |
| Remote Docker sizes (x86) | Documented mapping, including small → medium and medium+ → large |
Starts at medium.gen2. small.gen2 is not supported for Remote Docker |
| Credits / minute | See price list | Gen2 Docker costs more credits per minute than Gen1. See price list for Linux VM Gen2 rates |
| CircleCI Cloud | Supported | Supported |
| CircleCI Server | Supported for documented Gen1 Docker and Linux VM classes | Not supported for Gen2 Docker and Gen2 Linux VM |
| IP Ranges | See IP Ranges for executor support | Not currently supported |
| Arm Docker | Supported | Not supported |
| Arm Remote Docker | Supported | Not currently available |
| Free plan + Docker | Resource class access depends on your plan | Gen2 Docker requires a paid plan |
| Gen2 Linux VM / x86 Remote Docker availability | Gen1 Linux VM and Gen1 Remote Docker are already available (separate from Gen2) | Available for all users |
Docker executor (x86)
Resource classes
| Size | Gen1 | Gen2 |
|---|---|---|
| small | small |
small.gen2 |
| medium | medium |
medium.gen2 |
| medium+ | medium+ |
medium+.gen2 |
| large | large |
large.gen2 |
| xlarge | xlarge |
xlarge.gen2 |
| 2xlarge | 2xlarge |
2xlarge.gen2 |
| 2xlarge+ | 2xlarge+ |
2xlarge+.gen2 |
Availability
| Spec | Gen1 | Gen2 |
|---|---|---|
| Cloud | Yes | Yes |
| Server | Yes | No |
| Plan | Resource class access depends on your plan | Paid plans only |
What Gen2 Docker does not include
| Item | Gen2 |
|---|---|
| Free plans | Not supported |
| Arm Docker | Not supported |
Remote Docker with small.gen2 |
Not supported. Smallest Remote Docker size is medium.gen2 |
| IP Ranges | Not currently supported |
| CircleCI Server | Not supported |
Linux VM executor (machine, x86)
Resource classes
| Size | Gen1 | Gen2 |
|---|---|---|
| medium | medium (2 vCPU / 7.5 GB) |
medium.gen2 (2 vCPU / 8 GiB) |
| large | large (4 vCPU / 15 GB) |
large.gen2 (4 vCPU / 16 GiB) |
| xlarge | xlarge (8 vCPU / 32 GB) |
xlarge.gen2 (8 vCPU / 32 GiB) |
| 2xlarge | 2xlarge (16 vCPU / 64 GB) |
2xlarge.gen2 (16 vCPU / 64 GiB) |
| 2xlarge+ | 2xlarge+ (32 vCPU / 64 GB) |
2xlarge+.gen2 (32 vCPU / 128 GiB) |
Availability
| Spec | Gen1 | Gen2 |
|---|---|---|
| Cloud | Yes | Yes |
| Server | Yes | No |
| Disk | 150GB | 150GB |
Both Linux VM tables start at medium / medium.gen2. small.gen2 is a Docker class, not a Linux VM class.
Gen2 Linux VM images
Gen2 machine resource classes on CircleCI Cloud support these Ubuntu LTS versions:
- Ubuntu 22.04
- Ubuntu 24.04
- Ubuntu 26.04
Supported tags include current and edge. Gen2 resource classes are not available on CircleCI Server.
Remote Docker (setup_remote_docker)
Remote Docker uses a Linux or Arm machine resource class based on the Docker executor resource class you set. Gen1 and Gen2 use different size lists.
Gen1 mapping (x86)
A Remote Docker environment uses a Linux VM that corresponds to the Docker executor class, with these exceptions:
smallmaps tomediummedium+maps tolarge
| Docker resource class | Remote Docker (Linux VM) |
|---|---|
small |
medium |
medium |
medium |
medium+ |
large |
large |
large |
xlarge |
xlarge |
2xlarge |
2xlarge |
Gen2 mapping (x86)
| Docker resource class | Remote Docker (Linux VM) |
|---|---|
medium.gen2 |
medium.gen2 |
large.gen2 |
large.gen2 |
xlarge.gen2 |
xlarge.gen2 |
2xlarge.gen2 |
2xlarge.gen2 |
2xlarge+.gen2 |
2xlarge+.gen2 |
Important differences:
small.gen2is available for plain Docker Gen2, but it is not supported for Remote Docker. The smallest Gen2 Remote Docker size ismedium.gen2.medium+.gen2is available for plain Docker Gen2, but it is not listed in the Gen2 Remote Docker mapping table.- Gen2 does not currently support IP Ranges.
- Gen2 resource classes are not currently available for Arm-based Remote Docker.
Arm Remote Docker
| Gen1 | Gen2 | |
|---|---|---|
| Classes | arm.medium, arm.large, arm.xlarge, arm.2xlarge |
Not currently available |
Remote Docker version pins
Remote Docker version tags are listed in the Remote Docker docs, including aliases such as default, edge, and previous, plus version tags such as docker29, docker27, and docker26. For Gen2, the changelog also documents pinning with docker28 and docker29. Check those pages for the current tag list.
Example from the Gen2 changelog:
resource_class: medium.gen2
steps:
- setup_remote_docker:
version: docker28Feature support matrix
| Feature | Gen1 | Gen2 |
|---|---|---|
| Plain Docker (x86) | Yes | Yes, paid plans |
| Remote Docker (x86) | Yes, with small → medium and medium+ → large mapping |
Yes, from medium.gen2 through 2xlarge+.gen2. small.gen2 not supported. medium+.gen2 not listed |
Linux VM (machine, x86) |
Yes | Yes, from medium.gen2 through 2xlarge+.gen2 |
| IP Ranges | See IP Ranges | Not currently supported |
| Arm Docker | Yes | Not supported |
| Arm Remote Docker | Yes | Not currently available |
| CircleCI Server | Yes for documented Gen1 Docker and Linux VM classes | Not supported for Gen2 Docker and Gen2 Linux VM |
| Free plan Docker | Resource class access depends on your plan | Gen2 Docker not supported on Free. Paid plan required |
Performance and credits
| Product | Gen2 performance | Credits |
|---|---|---|
| Docker Gen2 | Nearly 1.4x faster than Gen1 | Higher credits/min than Gen1 |
| Linux VM / (x86) Remote Docker Gen2 | Up to 180% faster for multi-threaded workloads | See Gen2 rows on the price list |
Same size names can mean different RAM across executors. Example: Docker medium.gen2 is 2 vCPU / 4GB. Linux VM medium.gen2 is 2 vCPU / 8 GiB.
Comments
Article is closed for comments.