扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍“基于docker怎么部署surging分布式微服务引擎”,在日常操作中,相信很多人在基于docker怎么部署surging分布式微服务引擎问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于docker怎么部署surging分布式微服务引擎”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的凤城网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
概述
容器,就是用来存放镜像的器皿,而镜像是构建成的一个轻量的、独立的、可执行的包,包括了执行它所需要的所有东西:代码、运行环境、系统工具、系统库、设置。
程序被构建成镜像放到容器中,那么它所依赖的下层环境就不再重要了。它可以在任何地方运行,甚至在混合云环境下也可以。所以为何容器能流行起来, 而容器技术兴起让docke也渐渐的映入大家的眼帘,
那么docker又是什么呢?
docker是基于go语言开发并开源的容器引擎
docker将应用软件运行时所需的一切都打包成互相隔离的容器
docker可以自动执行并配置开发/线上环境,快速构建,测试和运行复杂的多容器应用程序
对拥有数千个节点或容器的应用程序,docker也能快速的扩展和调配
可以运行在主流的linux系统,mac以及windows上,并且保证无论软件在哪里部署,都能正常运行并得到相同的结果
相关概念介绍
image镜像和container容器:你可以把两者理解为类和实例对象,或者是iso系统镜像和虚拟机的关系。不同的image所包含的软件或者环境是不同的,但是你可以使用dockerfile(docker特有语法规则所创建的文件)进行管理。而container则是以image作为模板,可以独立运行的微型系统,一个image可以创建出来多个container容器的实例
registry:docker hub镜像仓库,为每个人提供庞大的镜像资源进行拉取和使用
dockerfile:是一个将镜像命令组合在一起的文件,用于image的自动构建
环境搭建
系统环境
宿主机: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
的参数,而我是把参数写到了配置文件里。
datacenter:数据中心名称(库名)
data_dir:数据存储目录
server:运行在server模式
ui:使用ui界面
bind_addr:内部集群通信绑定的地址。默认是 0.0.0.0 ,如果有多块网卡,需要指定,否则启动报错
client_addr:客户端接口绑定的地址,默认是 127.0.0.1 ;
retry_join:重新加入集群
retry_interval:重试时间
rejoin_after_leave:在离开集群之后才重试加入
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-runtime workdir /app copy . . 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
配置说明
mapping_ip:映射的外部ip(环境变量)
mapping_port :映射的外部端口 (环境变量)
rootpath:业务模块存储的根路径 (环境变量)
register_conn:注册中心地址 (环境变量)
eventbusconnection:eventbus 地址 (环境变量)
surging_server_ip:容器内部ip (环境变量)
启动后在rancher如下图所示
因为方便,把宿主机的目录进行了挂载,microsurging 为分布式微服务引擎,modules 为业务模块目录,surgingapi为网关
2. 部署surging网关, 新建dockerfile文件
from microsoft/dotnet:2.1-runtime workdir /app copy . . 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分布式微服务引擎”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流