您好,登錄后才能下訂單哦!
這篇文章主要介紹“基于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分布式微服務引擎”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。