千家信息网

基于docker部署surging分布式微服务引擎的案例

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下基于docker部署surging分布式微服务引擎的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1
千家信息网最后更新 2026年11月01日基于docker部署surging分布式微服务引擎的案例

小编给大家分享一下基于docker部署surging分布式微服务引擎的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、前言

转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微服务引擎,再把业务进行剥离, 通过配置路径就能驱动加载业务模块,这样的细粒度设计,能更加灵活从业务中针对于对象加以细分,能更加灵活的拆分聚合服务。基于docker 如何部署

2、概述

容器,就是用来存放镜像的器皿,而镜像是构建成的一个轻量的、独立的、可执行的包,包括了执行它所需要的所有东西:代码、运行环境、系统工具、系统库、设置。

程序被构建成镜像放到容器中,那么它所依赖的下层环境就不再重要了。它可以在任何地方运行,甚至在混合云环境下也可以。所以为何容器能流行起来, 而容器技术兴起让Docke也渐渐的映入大家的眼帘,

那么Docker又是什么呢?

  1. Docker是基于Go语言开发并开源的容器引擎

  2. Docker将应用软件运行时所需的一切都打包成互相隔离的容器

  3. Docker可以自动执行并配置开发/线上环境,快速构建,测试和运行复杂的多容器应用程序

  4. 对拥有数千个节点或容器的应用程序,Docker也能快速的扩展和调配

  5. 可以运行在主流的Linux系统,Mac以及Windows上,并且保证无论软件在哪里部署,都能正常运行并得到相同的结果

相关概念介绍

Image镜像和Container容器:你可以把两者理解为类和实例对象,或者是ISO系统镜像和虚拟机的关系。不同的Image所包含的软件或者环境是不同的,但是你可以使用Dockerfile(docker特有语法规则所创建的文件)进行管理。而Container则是以Image作为模板,可以独立运行的微型系统,一个Image可以创建出来多个Container容器的实例

Registry:Docker Hub镜像仓库,为每个人提供庞大的镜像资源进行拉取和使用

Dockerfile:是一个将镜像命令组合在一起的文件,用于Image的自动构建

3、环境搭建

系统环境

宿主机:Windows 10 专业版

Linux服务器: CentOS 3.10

1.安装Docker

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

[root@runoob ~]# uname -r 3.10.0-862.E17.X86_64

# yum install docker-engine 安装docker包

安装成功后,使用docker version命令查看是否安装成功,安装成功后------如下图

启动 Docker

systemctl start docker

查看docker信息,如下图

systemctl status docker

测试运行 hello-world

#docker run hello-world

2.安装rancher

下载镜像

docker pull rancher/server

启动 rancher

docker run -d --restart=always -p 8080:8080 rancher/server

安装成功后,通过http://ip:8080访问,如下图所示

3.安装rabbitmq

下载镜像

docker run -d --restart=always -p 8080:8080 rancher/server

复制代码 代码如下:


#docker run -d --name rabbitmq --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \rabbitmq:management

安装成功后,通过http://ip:15672访问,如下图所示

4.安装Consul

下载镜像

#docker pull docker.io/consul:latest

创建 Consul 配置

#vim /opt/platform/consul/server.json
{  "datacenter": "quark-consul",  "data_dir": "/consul/data",  "server": true,  "ui": true,  "bind_addr": "192.168.249.162",  "client_addr": "192.168.249.162",  "bootstrap_expect": 1,  "retry_interval": "10s",  "rejoin_after_leave": false,  "skip_leave_on_interrupt": true}

配置说明

官方在启动容器的时候是将一部分配置作为 docker run 的参数,而我是把参数写到了配置文件里。

  1. datacenter:数据中心名称(库名)

  2. data_dir:数据存储目录

  3. server:运行在server模式

  4. ui:使用UI界面

  5. bind_addr:内部集群通信绑定的地址。默认是 0.0.0.0 ,如果有多块网卡,需要指定,否则启动报错

  6. client_addr:客户端接口绑定的地址,默认是 127.0.0.1 ;

  7. retry_join:重新加入集群

  8. retry_interval:重试时间

  9. rejoin_after_leave:在离开集群之后才重试加入

  10. skip_leave_on_interrupt:在启动后,是否 Ctrl+C 优雅退出,我们是容器模式,所以不用管,直接 true 就好了。

启动 consul-server

复制代码 代码如下:

docker run -d --net=host --name consul -v /opt/platform/consul/config:/consul/config -v /opt/platform/consul/data:/consul/data consul agent

安装成功后,通过http://ip:8500访问,如下图所示

5. 安装dotnetcore 2.1 runtime

下载镜像

#sudo docker pull microsoft/dotnet:2.1-runtime

启动

#sudo docker run -it microsoft/dotnet:2.1-runtime

三、部署程序

1. 部署surging引擎,无需引用任何业务模块,新建Dockerfile文件

FROM microsoft/dotnet:2.1-runtimeWORKDIR /appCOPY . .ENTRYPOINT ["dotnet", "Surging.Services.Server.dll"]

发布程序

dotnet publish -r centos.7-x64 -c release

使用Dockerfile创建镜像

#docker build -t surgingserver .

启动

#docker run --name surgingserver --env Mapping_ip=192.168.249.162 --env Mapping_Port=198 --env RootPath=/home/fanly --env Register_Conn=192.168.249.162:8500 --env EventBusConnection=172.17.0.4 --env Surging_Server_IP=0.0.0.0 -v /home/fanly:/home/fanly -it -p 198:198 surgingserver

配置说明

  1. Mapping_ip:映射的外部IP(环境变量)

  2. Mapping_port :映射的外部端口 (环境变量)

  3. RootPath:业务模块存储的根路径 (环境变量)

  4. Register_Conn:注册中心地址 (环境变量)

  5. EventBusConnection:eventbus 地址 (环境变量)

  6. Surging_Server_IP:容器内部IP (环境变量)

启动后在rancher如下图所示

因为方便,把宿主机的目录进行了挂载,microsurging 为分布式微服务引擎,Modules 为业务模块目录,surgingapi为网关

2. 部署surging网关, 新建Dockerfile文件

FROM microsoft/dotnet:2.1-runtimeWORKDIR /appCOPY . .ENTRYPOINT ["dotnet", "Surging.ApiGateway.dll"]

发布程序

dotnet publish -r centos.7-x64 -c release

使用Dockerfile创建镜像

docker build -t surgingapi .

启动

复制代码 代码如下:

#docker run --name surgingapi -it -p 729:729 --env Register_Conn=192.168.249.162:8500 surgingapi

启动后在rancher如下图所示

可以通过http://ip:729进行访问

然后可以通过postman 来测试网关,如下图

以上是"基于docker部署surging分布式微服务引擎的案例"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

容器 环境 镜像 运行 服务 代码 系统 配置 引擎 成功 业务 变量 程序 文件 地址 模块 命令 版本 目录 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技未来 科技服务与互联网 唐信互联网科技 赫美联合互联网科技 互联网 视角下的科技创新 中国科技互联网公司收入 成都互联网科技公司100强 汽车互联网创新科技园 互联网校园科技培训 成都铂石互联网科技做什么的 华夏互联网科技业 阿大互联网科技有限公司 互联网与医疗科技 开一家科技互联网公司需要多少钱 山东子淼互联网科技有限公司 云南省自由互联网科技有限公司 陕西云淼互联网科技公司 九思连强互联网电子科技有限公司 广东鹅鹅鹅互联网科技有限公司 互联网领先科技成果宣传视频 南京欣网互联网络科技有限公司 河南真二互联网科技有限公司 鑫亿盛互联网科技 中盈科技互联网信息有限公司 互联网之后的科技是什么 电子商务与互联网科技的关系 互联网高科技行业有哪些企业 互联网科技收购价值 广州全民伙伴互联网科技有限公司 武汉亿视互联网科技有限公司
0