本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

grpcurl Docker 镜像下载 - 轩辕镜像

grpcurl 镜像详细信息和使用指南

grpcurl 镜像标签列表和版本信息

grpcurl 镜像拉取命令和加速下载

grpcurl 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

grpcurl
fullstorydev/grpcurl

grpcurl 镜像详细信息

grpcurl 镜像标签列表

grpcurl 镜像使用说明

grpcurl 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

类cURL的gRPC命令行工具,用于与gRPC服务器交互
8 收藏0 次下载activefullstorydev镜像

grpcurl 镜像详细说明

grpcurl 使用指南

grpcurl 配置说明

grpcurl 官方文档

grpcurl Docker镜像文档

镜像概述

grpcurl是一款用于与gRPC服务器交互的命令行工具,功能类似于HTTP客户端工具cURL,但专门针对gRPC协议设计。该工具支持探索gRPC服务定义及调用gRPC方法,适用于gRPC服务的开发调试、监控与测试场景。

源码地址:[***]

核心功能与特性

  • 服务探索:支持列出gRPC服务器提供的所有服务、方法及消息类型,自动解析服务定义。
  • 方法调用:支持调用各类gRPC方法,包括Unary RPC、Server Streaming、Client Streaming及Bidirectional Streaming。
  • 协议支持:基于HTTP/2协议,兼容标准gRPC通信流程,支持TLS加密与非加密(plaintext)连接。
  • 灵活输入:支持通过命令行参数或文件传入请求数据,支持JSON格式请求体。
  • Proto文件解析:可通过本地Proto文件或反射服务(gRPC Reflection)获取服务定义,无需预编译Proto。

使用场景与适用范围

  • 开发调试:开发人员快速验证gRPC服务接口功能,排查方法调用异常。
  • 服务监控:定期调用健康检查或状态查询类gRPC方法,监控服务可用性。
  • 自动化测试:集成至CI/CD流程,通过脚本调用gRPC方法验证服务部署后功能正确性。
  • *与分析**:解析第三方gRPC服务的接口定义,了解服务结构与通信协议。

使用方法与配置说明

基本使用方式

grpcurl Docker镜像以grpcurl可执行文件为入口,使用时通过docker run命令传递参数。基础语法:

bash
docker run --rm fullstorydev/grpcurl [全局参数] <服务器地址> <命令> [命令参数]

说明--rm确保容器退出后自动清理;fullstorydev/grpcurl为***镜像(假设,实际需替换为具体镜像名)。

常用命令示例

1. 探索gRPC服务(需服务启用Reflection)

列出目标服务器上所有gRPC服务:

bash
docker run --rm fullstorydev/grpcurl --plaintext grpc-server:50051 list

参数--plaintext:禁用TLS(适用于开发环境非加密连接);list:命令,列出服务。

列出指定服务的所有方法:

bash
docker run --rm fullstorydev/grpcurl --plaintext grpc-server:50051 list myservice.UserService

查看方法详细定义(包括请求/响应消息结构):

bash
docker run --rm fullstorydev/grpcurl --plaintext grpc-server:50051 describe myservice.UserService.GetUser

2. 调用Unary RPC方法

调用myservice.UserService.GetUser方法,传入JSON格式请求数据:

bash
docker run --rm fullstorydev/grpcurl --plaintext -d '{"user_id": "123"}' grpc-server:50051 myservice.UserService.GetUser

参数-d:指定请求数据(JSON格式);最后一个参数为<服务名>.<方法名>

3. 使用本地Proto文件(服务未启用Reflection时)

若服务未启用Reflection,需通过本地Proto文件指定服务定义:

bash
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文件名。

4. 调用Server Streaming方法

调用返回流式响应的方法(如实时日志推送):

bash
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

Docker Compose示例

若需频繁使用本地Proto文件或固定配置,可通过docker-compose.yml简化命令:

yaml
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

运行:

bash
docker-compose run --rm grpcurl

说明grpc-server需与当前Compose网络中的gRPC服务容器名一致。

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"