.net core微服务之基于Docker+Consul+Registrator服务注册服务发现
一、Docker部分:
先拉最新的asp.net core的镜像:
docker pull microsoft/aspnetcore
将下载下来的镜像重命名,为什么要重命名?等会讲Registrator的时候再解释。执行下面的命令:
docker tag microsoft/aspnetcore qkawebserver
运行docker, 挂载本地目录/apps/QkaWebServer到容器中的/apps/dotnet/,将容器中的两个端口映射出来,其中80端口是网站的端口,8800端口是thrift服务端口,执行如下命令:
docker run -ti -d --restart=always --privileged -v /apps/QkaWebServer:/apps/dotnet/ -v /etc/hosts:/etc/hosts -p: -p:8800 qkawebserver /usr/sbin/init
查看所有容器,执行命令:
docker ps -a
运行.net core程序及怎么配置守护程序supervisor,请查看之前的一篇博文http://www.cnblogs.com/focus-lei/p/6868324.html,不再赘述
二、Consul部分:
下载consul:
wget https://releases.hashicorp.com/consul/1.0.7/consul_1.0.7_linux_amd64.zip
解压:
unzip consul_1..7_linux_amd64.zip
运行:
./consul agent -dev -ui -node=consul-dev -client=192.168.0.124
这里没做集群了,生产环境再做考虑。访问一下http://192.168.0.124:8500,可以访问说明安装成功。
三、Registrator部分
Docker服务中进程间通信通过/var/run/docker.sock实现,默认服务不提供监听端口,因此使用docker remote api 需要手动绑定端口。
vim /etc/systemd/system/docker.service
修改
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
以上红色部分为新增的。修改后重启一下docker服务。
拉取Registrator的镜像:
docker pull gliderlabs/registrator:latest
运行:
docker run -d --name=registrator --net=host --volume=/var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator:latest consul://192.168.0.124:8500
再访问http://192.168.0.124:8500,可以看到services中已经有了docker中全部的服务地址。服务的命名规则是运行的容器的image的名字+“-”+端口,所以在每次运行镜像之前最好对镜像重命名一个与业务相关的名字。

.net core微服务之基于Docker+Consul+Registrator服务注册服务发现的更多相关文章
- 基于Docker + Consul + Nginx + Consul-Template的服务负载均衡实现(转)
转:https://www.jianshu.com/p/fa41434d444a 前言 上一篇文章使用 Consul 和 Registrator 在 docker 的容器环境中搭建了服务注册和发现集群 ...
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- Docker+Consul+Registrator 实现服务注册与发现
Docker+Consul+Registrator实现服务注册与发现 逻辑图 实现nginx节点自动化加入容器IP代理 1.三台Consul agent server作为高可用通过Consul Tem ...
- .NET Core微服务之基于IdentityServer建立授权与验证服务
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.IdentityServer的预备知识 要学习IdentityServer,事先得了解一下基于Token的验证体系,这是一个庞大的主题 ...
- .NET Core微服务之基于IdentityServer建立授权与验证服务(续)
Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇我们基于IdentityServer4建立了一个AuthorizationServer,并且继承了QuickStartUI,能够成功 ...
- 基于docker,consul,consul-template, registrator, nginx服务注册发现集群
介绍 该工程主要实现服务的自动注册发现,从而达到提高运维效率,做到服务的自动发现和动态扩展. 服务注册发现 服务启动后自动被发现 动态变更负载均衡 自动伸缩 工具 1.Registrator 这是 ...
- 基于Docker的负载均衡和服务发现
应用的容器化和微服务化带来的问题 在缺省网络模型中,容器每次重启后,IP会发生变动,在一个大的分布式系统保证IP地址不变是比较复杂的事情 IP频繁发生变动,动态应用部署无法预知容器的IP地址,clie ...
- 基于docker构建jenkins和svn服务(转)
码农们很定都知道svn的重要性,机器坏掉丢代码的惨痛教训想必很多人都有. jenkins可能很多人都不了解.这是一个持续集成的工具,在敏捷开发领域很流行:跟svn结合可以实现定期build.check ...
- Harbor安装部署--基于 Docker Distribution 的企业级 Registry 服务
harbor简介 Harbor 是一个企业级 Registry 服务.它对开源的 Docker Registry 服务进行了扩展,添加了更多企业用户需要的功能.Harbor 被设计用于部署一套组织内部 ...
随机推荐
- 演进之美,越来越美:三分钟看尽 iOS 1 ~ iOS 8 的进化史
演进之美,越来越美:三分钟看尽 iOS 1 ~ iOS 8 的进化史 原文出处: 少数派 9 月 18 日苹果就将推出 iOS 8 正式版了,从 2007 年发布第一代 iPhone 时搭载在 iPh ...
- 图文并茂的生产者消费者应用实例demo
前面的几篇文章<<.NET 中的阻塞队列BlockingCollection的正确打开方式>><<项目开发中应用如何并发处理的一二事>>从代码以及理论角 ...
- jQuery鼠标移入移出(冒泡版和无冒泡版)
带冒泡事件的鼠标移入移出(默认的):mouseover和mouseout事件 没有冒泡事件的鼠标移入移出:mouseenter和mouseleave事件
- IT轮子系列(二)——mvc API 说明文档的自动生成——Swagger的使用(一)
这篇文章主要介绍如何使用Swashbuckle插件在VS 2013中自动生成MVC API项目的说明文档.为了更好说明的swagger生成,我们从新建一个空API项目开始. 第一步.新建mvc api ...
- HTML DOM - 导航
HTML DOM 节点列表长度 length 属性定义节点列表中节点的数量. 您可以使用 length 属性来循环节点列表: x=document.getElementsByTagName(" ...
- SpringBoot配置拦截器
[配置步骤] 1.为类添加注解@Configuration,配置拦截器 2.继承WebMvcConfigurerAdapter类 3.重写addInterceptors方法,添加需要拦截的请求 @Co ...
- DUEditor的诞生
书接上回线上项目py2升级py3的事,除了上篇blog说到的snspy,主要升级的一个包就是DjangoUeditor,由于这个项目的维护人也不维护了,最后所幸自己开了支持Py3且加了一定优化的新版本 ...
- add-apt-repository出Exception问题
参考:http://blog.sina.com.cn/s/blog_5388923c0100nu8h.html 症状: xxxx@xxxxx:~$ sudo add-apt-repository pp ...
- Python循环依赖问题的解决
一个是把某个import移到代码中间,使原先的循环依赖圈打开.
- Apriori算法-频繁项集-关联规则
计算频繁项集: 首先生成一个数据集 def loadDataSet(): return [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]] 测试数据集da ...