本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Mmock是一款面向开发者的测试和快速原型设计工具,作为轻量级HTTP模拟服务器,它允许开发者通过JSON或YAML文件定义模拟规则,配置应用端点使用模拟服务,并在Web界面中 inspect 请求数据。Mmock采用Go语言构建,无需安装即可在多平台运行,适用于API测试、服务原型设计、状态模拟等场景。
/hello/:name)*hello*)docker image pull jordimartin/mmock
docker run -v YOUR_ABS_PATH:/config -p 8082:8082 -p 8083:8083 jordimartin/mmock
-v YOUR_ABS_PATH:/config:挂载本地目录到容器内的/config,用于存放模拟规则文件(JSON/YAML)-p 8082:8082:映射Web控制台端口-p 8083:8083:映射模拟服务器端口模拟规则通过JSON或YAML文件定义,存放于挂载的/config目录中。
{ "request": { "method": "GET", "path": "/hello/*" }, "response": { "statusCode": 200, "headers": { "Content-Type": ["application/json"] }, "body": "{\"hello\": \"{{request.query.name}}, my name is {{fake.FirstName}}\"}" } }
--- request: method: GET path: "/hello/*" response: statusCode: 200 headers: Content-Type: - application/json body: '{"hello": "{{request.query.name}}, my name is {{fake.FirstName}}"}'
定义匹配条件,包含以下字段:
host:请求主机名(不含端口)method:HTTP方法(必填,支持多方法用|分隔,如GET|POST)path:资源路径(必填,支持:variable命名参数和通配符)queryStringParameters:查询字符串参数(支持多值)headers:请求头(区分大小写,支持多值)cookies:Cookie键值对body:请求体(支持通配符匹配)定义匹配后的响应,包含:
statusCode:HTTP状态码(如200、404、500)headers:响应头(支持多值和变量)cookies:响应Cookie(支持变量)body:响应体(支持变量)高级配置选项:
scenario:场景配置(name场景名称、requiredState当前所需状态、newState匹配后新状态)proxyBaseURL:代理基础URL(将请求转发至该URL,无需定义response)delay:响应延迟(秒,模拟网络或服务器性能问题)crazy:是否启用疯狂模式(随机返回5xx错误,模拟服务器故障)priority:匹配优先级(数值越高优先级越高,避免被宽松规则匹配)webHookURL:匹配后通知的WebHook端点响应中可使用变量标签{{nameVar}},支持以下类型:
提取请求中的数据:
request.scheme:请求协议(http/https)request.hostname:主机名request.port:端口request.path:完整路径request.path."key":路径中的命名参数(如/user/:id对应request.path.id)request.query."key":查询参数(如?name=test对应request.query.name)request.cookie."key":Cookie值request.url:完整URL(含协议、主机、端口、路径和查询参数)request.body:请求体(支持JSON/XML/表单数据的键值提取,如request.body.user.name)生成随机测试数据:
fake.FirstName:名fake.LastName:姓fake.FullName:全名fake.EmailAddress:邮箱fake.City:城市fake.Country:国家fake.IPv4:IPv4地址fake.UUID:UUIDfake.Int(n):小于n的随机整数fake.Word:随机单词file.contents(FILE_PATH):读取文件内容http.contents(URL):获取URL响应内容场景用于模拟有状态服务,通过状态机管理服务行为。默认初始状态为not_started,可通过requiredState指定匹配所需状态,newState设置匹配后的新状态。
示例流程:
GET /user 需状态created,返回404POST /user 需状态not_started,返回201并更新状态为createdGET /user 需状态created,返回200Mmock提供REST API用于管理请求、场景和模拟规则:
GET /api/request/all:获取所有请求记录GET /api/request/matched:获取所有匹配的请求POST /api/request/verify:验证是否收到匹配特定规则的请求GET /api/scenarios/reset_all:重置所有场景状态PUT /api/scenarios/set/:scenario/:state:设置场景状态PUT /api/scenarios/pause:暂停场景状态更新PUT /api/scenarios/unpause:恢复场景状态更新GET /api/mapping:获取所有模拟规则POST /api/mapping/:uri:创建模拟规则PUT /api/mapping/:uri:更新模拟规则DELETE /api/mapping/:uri:删除模拟规则Mmock默认收集匿名使用统计(如模拟请求数、控制台使用次数等),可通过启动参数-server-statistics=false禁用。
通过命令行参数配置Mmock(Docker运行时可添加至docker run命令末尾):
-config-path string 模拟规则目录(默认"execution_path/config") -console bool 是否启用控制台(默认true) -console-ip string 控制台IP(默认公共IP) -console-port int 控制台端口(默认8082) -request-storage-capacity int 请求存储容量(0为无限,默认100) -server-ip string 模拟服务器IP(默认公共IP) -server-port int 模拟服务器端口(默认8083) -server-statistics bool 是否启用统计(默认true) -server-tls-port int TLS端口(默认8084) -tls-path string TLS配置目录(默认"execution_path/tls")
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429