基于 Docker 的 go grpc quickstart

工作之后一直使用的 RPC 框架是 Apache 的 thrift,现在发现 grpc 更流行,所以也要学习一下,先来简单的跑一下 demo。在本地安装运行也很方便,不过因为有了 docker,所以在 docker 里面安装运行隔离性更好,顺便也提升 docker 命令行的熟练度。

1.编写 Dockerfile 文件

sh 复制代码
FROM golang:1.20.11-bullseye
RUN apt-get update \ 
    && apt-get install -y protobuf-compiler \
    && go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 \
	&& go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 \
	&& export PATH="$PATH:$(go env GOPATH)/bin"
CMD ["/bin/bash"]

2.构建镜像

docker build -t rpc_go:0.1 .

官方文档这里强调要确保版本号是 3+,所以要执行这个命令看一下。

3.拉取示例代码

git clone -b v1.63.0 --depth 1 https://github.com/grpc/grpc-go

注意:这个代码没有直接打包到镜像里面,因为之后还需要进行修改,而且容器内的东西关掉就没了,所以我是把代码拉取到本地(在启动镜像的时候挂载进去),因为我还要看代码的,修改也方便。

4.启动容器

启动服务端,它拉取必要的依赖,然后监听 50051 端口。

注意:这里的 ${pwd} 这个语法是 Windows 的,如果是 Linux 应该使用 $(pwd) 才对。

使用 exec 进入容器,运行客户端:

相关推荐
倚肆10 分钟前
在 Windows Docker 中安装并配置 Nginx (映射 Windows 端口与路径)
windows·nginx·docker
倚肆1 小时前
windows安装docker(末尾附命令大全)
docker·容器
巽逸1 小时前
containerd配置镜像加速
docker
倚肆2 小时前
在 Windows Docker 中安装 Kafka 并映射 Windows 端口
docker·kafka
qwfys2003 小时前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
至此流年莫相忘3 小时前
Kubernetes实战篇之服务发现
容器·kubernetes·服务发现
iqiu3 小时前
一键启动支持postgresql的nacos
后端·docker
Zaly.3 小时前
解决 Windows 下 Docker Desktop 启动失败:从虚拟化报错到成功运行的全流程
windows·docker·容器
梅孔立3 小时前
Docker 全场景安装与镜像管理实战教程(在线+内网离线+镜像导入导出)
运维·docker·容器
一次旅行3 小时前
Docker安全总结
安全·docker·eureka