CircleCI Runner (Machine Mode) 镜像是用于在自托管环境中以机器模式运行 CircleCI 作业的 Docker 镜像。该模式允许作业直接运行在宿主系统的底层环境中(而非容器隔离环境),支持直接访问系统资源、硬件设备及原生系统依赖,适用于需要突破容器隔离限制的 CI/CD 场景。
该镜像通常通过 CircleCI ***渠道分发,或通过私有仓库获取。拉取命令示例:
bashdocker pull circleci/runner:machine-mode-latest
通过 docker run 启动 Runner 容器,核心参数需包含 Runner 令牌、名称及资源类信息:
bashdocker run -d \ --name circleci-runner-machine \ --privileged \ # 机器模式需特权模式以访问宿主系统资源 -e CIRCLECI_RUNNER_TOKEN="your_runner_token" \ # 替换为实际 Runner 令牌 -e RUNNER_NAME="my-machine-runner-01" \ # 自定义 Runner 名称(需唯一) -e RESOURCE_CLASS="your-org/machine-medium" \ # 替换为 CircleCI 资源类名称 -e RUNNER_MODE="machine" \ # 指定为机器模式 -v /var/run/docker.sock:/var/run/docker.sock \ # 可选:如需在作业中使用 Docker circleci/runner:machine-mode-latest
说明:
--privileged标志为机器模式必需,用于解除容器对系统资源的访问限制。
| 环境变量名 | 描述 | 是否必填 | 示例值 |
|---|---|---|---|
CIRCLECI_RUNNER_TOKEN | CircleCI Runner 注册令牌,用于认证 Runner 与平台的连接 | 是 | runner-token-abc123... |
RUNNER_NAME | Runner 实例名称,需在组织内唯一,用于识别和管理 | 是 | machine-runner-01 |
RESOURCE_CLASS | CircleCI 资源类名称,格式为 组织名/资源类名,需提前在平台创建 | 是 | my-org/machine-highcpu |
RUNNER_MODE | 运行模式,固定为 machine | 是 | machine |
RUNNER_LABELS | 自定义标签,用于作业调度过滤(逗号分隔) | 否 | gpu,ubuntu2204,x86_64 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | 否 | info |
CIRCLECI_API_URL | CircleCI API 端点(默认:[***]) | 否 | [***] |
通过 Docker Compose 管理 Runner 容器,便于持久化配置和服务编排:
yaml# docker-compose.yml version: '3.8' services: circleci-runner: image: circleci/runner:machine-mode-latest container_name: circleci-machine-runner restart: always # 容器退出时自动重启 privileged: true environment: - CIRCLECI_RUNNER_TOKEN=your_runner_token # 替换为实际令牌 - RUNNER_NAME=machine-runner-prod-01 - RESOURCE_CLASS=my-org/prod-machine - RUNNER_MODE=machine - RUNNER_LABELS=gpu,nvidia,ubuntu2204 - LOG_LEVEL=info volumes: - /var/run/docker.sock:/var/run/docker.sock # 允许作业内使用 Docker - ./runner-config:/etc/circleci-runner # 挂载自定义配置文件(可选) deploy: resources: limits: cpus: '8' # 限制 CPU 核心数 memory: 16G # 限制内存使用
启动命令:
bashdocker-compose up -d
通过 Docker 原生参数限制 Runner 容器的资源使用,避免影响宿主系统:
bashdocker run -d \ --name circleci-runner-machine \ --privileged \ --cpus 4 \ # 限制使用 4 核 CPU --memory 8G \ # 限制使用 8GB 内存 -e CIRCLECI_RUNNER_TOKEN="your_token" \ ... # 其他参数 circleci/runner:machine-mode-latest
将 Runner 配置文件(如 runner-config.yaml)挂载到容器内,实现自定义配置持久化:
bashdocker run -d \ ... -v /host/path/to/runner-config.yaml:/etc/circleci-runner/runner-config.yaml \ ...
指定自定义网络或端口映射(如需外部监控 Runner 状态):
bashdocker run -d \ ... --network custom-network \ # 加入自定义 Docker 网络 -p 9000:9000 \ # 映射监控端口(如 Runner 内置监控接口) ...
Runner 启动后,可通过以下方式验证是否正常连接 CircleCI 平台:
docker logs circleci-runner-machine,出现 Runner registered successfully 表示注册成功Activeresource_class: your-org/machine-medium 的 CircleCI 作业,验证作业是否被该 Runner 接收并执行来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429