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