本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
grpcurl是一款用于与gRPC服务器交互的命令行工具,功能类似于HTTP客户端工具cURL,但专门针对gRPC协议设计。该工具支持探索gRPC服务定义及调用gRPC方法,适用于gRPC服务的开发调试、监控与测试场景。
源码地址:[***]
grpcurl Docker镜像以grpcurl可执行文件为入口,使用时通过docker run命令传递参数。基础语法:
docker run --rm fullstorydev/grpcurl [全局参数] <服务器地址> <命令> [命令参数]
说明:
--rm确保容器退出后自动清理;fullstorydev/grpcurl为官方镜像(假设,实际需替换为具体镜像名)。
列出目标服务器上所有gRPC服务:
docker run --rm fullstorydev/grpcurl --plaintext grpc-server:50051 list
参数:
--plaintext:禁用TLS(适用于开发环境非加密连接);list:命令,列出服务。
列出指定服务的所有方法:
docker run --rm fullstorydev/grpcurl --plaintext grpc-server:50051 list myservice.UserService
查看方法详细定义(包括请求/响应消息结构):
docker run --rm fullstorydev/grpcurl --plaintext grpc-server:50051 describe myservice.UserService.GetUser
调用myservice.UserService.GetUser方法,传入JSON格式请求数据:
docker run --rm fullstorydev/grpcurl --plaintext -d '{"user_id": "123"}' grpc-server:50051 myservice.UserService.GetUser
参数:
-d:指定请求数据(JSON格式);最后一个参数为<服务名>.<方法名>。
若服务未启用Reflection,需通过本地Proto文件指定服务定义:
docker run --rm -v $(pwd)/protos:/protos fullstorydev/grpcurl \ --plaintext \ -import-path /protos \ -proto user_service.proto \ grpc-server:50051 \ myservice.UserService.GetUser
参数:
-v $(pwd)/protos:/protos:挂载本地protos目录至容器内/protos;-import-path:指定Proto文件导入路径;-proto:指定Proto文件名。
调用返回流式响应的方法(如实时日志推送):
docker run --rm fullstorydev/grpcurl --plaintext -d '{"stream_id": "log-stream-1"}' grpc-server:50051 myservice.LogService.StreamLogs
| 参数 | 用途 | 示例 |
|---|---|---|
--plaintext | 禁用TLS,使用纯文本HTTP/2连接 | --plaintext |
-d <data> | 指定请求数据(JSON格式或文件路径) | -d '{"user_id": "123"}' 或 -d @request.json |
-import-path <path> | 指定Proto文件导入路径 | -import-path /protos |
-proto <file> | 指定Proto文件名(需配合-import-path) | -proto user_service.proto |
-H <header> | 添加请求头(如认证Token) | -H "Authorization: Bearer <token>" |
-o <file> | 将响应输出至文件 | -o response.json |
list | 列出服务/方法/消息类型 | list myservice.UserService |
describe | 查看服务/方法/消息的详细定义 | describe myservice.UserRequest |
若需频繁使用本地Proto文件或固定配置,可通过docker-compose.yml简化命令:
version: '3' services: grpcurl: image: fullstorydev/grpcurl volumes: - ./protos:/protos # 挂载本地Proto文件目录 command: > --plaintext -import-path /protos -proto user_service.proto grpc-server:50051 myservice.UserService.GetUser
运行:
docker-compose run --rm grpcurl
说明:
grpc-server需与当前Compose网络中的gRPC服务容器名一致。
免费版仅支持 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