Skip to main content

Gen1 vs Gen2 Resource Classes: Summary

Differences between Gen1 and Gen2 CircleCI resource classes for Docker, Linux VM, and Remote Docker.

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 smallmedium 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

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

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:

  • small maps to medium

  • medium+ maps to large

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.gen2 is available for plain Docker Gen2, but it is not supported for Remote Docker. The smallest Gen2 Remote Docker size is medium.gen2.

  • medium+.gen2 is available for plain Docker Gen2, but it is not listed in the Gen2 Remote Docker mapping table.

  • 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: docker28

Feature support matrix

Feature

Gen1

Gen2

Plain Docker (x86)

Yes

Yes, paid plans

Remote Docker (x86)

Yes, with smallmedium 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

Supported on x86 Docker Gen2

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.


Additional resources

Did this answer your question?