本文以mall-swarm
項目爲例,主要介紹一個微服務架構的電商項目如何在Docker容器下部署,涉及到大量系統組件的部署及多個Spring Cloud 微服務應用的部署,基於CentOS7.6。html
mall-swarm
運行須要的系統組件以下,Docker容器中安裝這些組件的方法直接參考該文章便可:mall在Linux環境下的部署(基於Docker容器) 。mysql
組件 | 版本號 |
---|---|
JDK | 1.8 |
Mysql | 5.7 |
Redis | 3.2 |
Elasticsearch | 6.4.0 |
MongoDb | 3.2 |
RabbitMq | 3.7.15 |
Nginx | 1.10 |
一共8個應用服務須要打包成Docker鏡像,具體如何打包能夠參考使用Maven插件構建Docker鏡像 。 須要注意的是若是打包過程當中遇到找不到
mall-common
、mall-mbg
或mall-security
的狀況,須要先按順序將這些模塊install到本地maven倉庫再進行打包。git
應用 | 版本號 |
---|---|
mall-registry | 1.8 |
mall-config | 5.7 |
mall-monitor | 3.2 |
mall-gateway | 6.4.0 |
mall-admin | 3.2 |
mall-portal | 3.7.15 |
mall-search | 1.10 |
mall-demo | 1.10 |
鏡像打包上傳完成後,完整docker倉庫鏡像示意圖:github
mall-registry
:docker run -p 8001:8001 --name mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-registry/logs:/var/logs \
-d mall/mall-registry:1.0-SNAPSHOT
複製代碼
mall-config
:docker run -p 8301:8301 --name mall-config \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-config/logs:/var/logs \
-d mall/mall-config:1.0-SNAPSHOT
複製代碼
運行成功後,經過訪問該地址能夠查看mall-admin
在prod環境下的配置信息:http://192.168.6.132:8301/master/admin-prod.ymlredis
須要注意
的是prod環境下從配置中心獲取的是存儲在git倉庫中的配置,如需更改須要將mall-config模塊的配置文件application.yml中的git倉庫配置改成你本身的。spring
spring:
cloud:
config:
server:
git: #Git倉庫存儲
uri: https://gitee.com/macrozheng/mall-config.git #改成你本身的配置
username: macro
password: 123456
clone-on-start: true
search-paths: '{application}'
複製代碼
mall-monitor
:docker run -p 8101:8101 --name mall-monitor \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-monitor/logs:/var/logs \
-d mall/mall-monitor:1.0-SNAPSHOT
複製代碼
macro:123456
:http://192.168.6.132:8101mall-gateway
:docker run -p 8201:8201 --name mall-gateway \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-gateway/logs:/var/logs \
-d mall/mall-gateway:1.0-SNAPSHOT
複製代碼
mall-admin
:docker run -p 8180:8180 --name mall-admin \
--link mysql:db \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-admin/logs:/var/logs \
-d mall/mall-admin:1.0-SNAPSHOT
複製代碼
mall-gateway
網關服務訪問接口文檔:http://192.168.6.132:8201/mall-admin/swagger-ui.htmlmall-portal
:docker run -p 8085:8085 --name mall-portal \
--link mysql:db \
--link redis:redis \
--link mongo:mongo \
--link rabbitmq:rabbit \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-portal/logs:/var/logs \
-d mall/mall-portal:1.0-SNAPSHOT
複製代碼
mall-gateway
網關服務訪問接口文檔:http://192.168.6.132:8201/mall-portal/swagger-ui.htmlmall-search
:docker run -p 8081:8081 --name mall-search \
--link mysql:db \
--link elasticsearch:es \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-search/logs:/var/logs \
-d mall/mall-search:1.0-SNAPSHOT
複製代碼
mall-gateway
網關服務訪問接口文檔:http://192.168.6.132:8201/mall-search/swagger-ui.htmlmall-demo
:docker run -p 8082:8082 --name mall-demo \
--link mysql:db \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-demo/logs:/var/logs \
-d mall/mall-demo:1.0-SNAPSHOT
複製代碼
mall-gateway
網關服務訪問接口文檔:http://192.168.6.132:8201/mall-demo/swagger-ui.htmlPortainer 是一款輕量級的應用,它提供了圖形化界面,用於方便的管理Docker環境,包括單機環境和集羣環境,下面咱們將用Portainer來管理Docker容器中的應用。sql
官網地址:github.com/portainer/p…docker
獲取Docker鏡像文件:bash
docker pull portainer/portainer
複製代碼
docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer
複製代碼
mall-portal
應用的統計信息:mall-portal
應用的運行過程當中打印的日誌信息:mall-portal
應用的容器內部來操做容器內部系統:mall項目全套學習教程連載中,關注公衆號第一時間獲取。