zoukankan      html  css  js  c++  java
  • .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:80 -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.0.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的名字+“-”+端口,所以在每次运行镜像之前最好对镜像重命名一个与业务相关的名字。

  • 相关阅读:
    389 Directory Server RHEL 6.0以上客户端安装方法
    389 Directory Server RHEL 6.0以下客户端安装方法
    堆排序算法
    单链表倒置(递归与非递归)
    发帖水王问题及扩展
    2.5 k个最大的数
    2.7 最大公约数
    进制转化的算法问题。
    boost图库简单操作
    C++编程必备
  • 原文地址:https://www.cnblogs.com/focus-lei/p/8916246.html
Copyright © 2011-2022 走看看