.net core微服務之基於Docker+Consul+Registrator服務註冊服務發現

1、Docker部分:html

先拉最新的asp.net core的鏡像:node

docker pull microsoft/aspnetcore

 將下載下來的鏡像重命名,爲何要重命名?等會講Registrator的時候再解釋。執行下面的命令:linux

docker tag microsoft/aspnetcore qkawebserver

運行docker, 掛載本地目錄/apps/QkaWebServer到容器中的/apps/dotnet/,將容器中的兩個端口映射出來,其中80端口是網站的端口,8800端口是thrift服務端口,執行以下命令:web

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

docker ps -a

 運行.net core程序及怎麼配置守護程序supervisor,請查看以前的一篇博文http://www.cnblogs.com/focus-lei/p/6868324.html,再也不贅述vim

2、Consul部分:api

 下載consul:app

wget https://releases.hashicorp.com/consul/1.0.7/consul_1.0.7_linux_amd64.zip

 解壓:asp.net

unzip consul_1.0.7_linux_amd64.zip

運行:tcp

./consul agent -dev -ui -node=consul-dev -client=192.168.0.124

這裏沒作集羣了,生產環境再作考慮。訪問一下http://192.168.0.124:8500,能夠訪問說明安裝成功。

3、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的名字+「-」+端口,因此在每次運行鏡像以前最好對鏡像重命名一個與業務相關的名字。

相關文章
相關標籤/搜索