使用Docker快速部署開源商城

SiC软件發表於2024-03-30

目標

使用Docker容器技術,快速部署一套可執行的SiC B2B2C Shop商城系統。

#準備Docker環境

如果你使用Windows系統,我們需要安裝使用Docker Desktop(Docker 桌面)。
如果你使用Linux系統,我們需要安裝Docker Engine(Docker 引擎\ Docker CE )。
安裝Docker環境在新視窗開啟

#DcokerHub映象倉庫列表

你可以使用Docker容器快速部署一套B2B2C電商系統。以下映象都是經過測試的,可以直接使用。
https://hub.docker.com/u/sichengtech在新視窗開啟 DcokerHub映象倉庫列表
https://hub.docker.com/r/sichengtech/b2b2c-shop-open-cn在新視窗開啟 Shop主程式映象(簡體中文商城)
https://hub.docker.com/r/sichengtech/b2b2c-shop-open-en在新視窗開啟 Shop主程式映象(英文國際商城)
https://hub.docker.com/r/sichengtech/b2b2c-shop-mysql56在新視窗開啟 MySQL映象(包含中英兩個資料庫)
https://hub.docker.com/r/sichengtech/b2b2c-shop-minio在新視窗開啟 Minio物件儲存映象(包含中英兩套圖片)
https://hub.docker.com/r/sichengtech/b2b2c-shop-solr8在新視窗開啟 Solr搜尋引擎映象(包含中英兩套索引)

#Deploy by docker 使用Docker部署

#1、拉取映象:

#拉取映象-簡體中文商城主程式   
docker pull sichengtech/b2b2c-shop-open-cn   

#拉取映象-英文國際商城主程式    
docker pull sichengtech/b2b2c-shop-open-en    

#拉取映象-MySQL映象(包含中英兩個資料庫)   
docker pull sichengtech/b2b2c-shop-mysql56     

#拉取映象-Solr搜尋引擎映象(包含中英兩套索引)  
docker pull sichengtech/b2b2c-shop-solr8   

#拉取映象-Minio物件儲存映象(包含中英兩套圖片)   
docker pull sichengtech/b2b2c-shop-minio     

剛剛下載的5個映象
剛剛下載的5個映象

#2、建立網路

Docker容器分配靜態ip,並使用自定義網路的示例。下面使用一個叫my-net 的自定義網路,使用172.28.0.0/16網段
建立一個網路172.28.0.0/16

docker network create --subnet=172.28.0.0/16 my-net  

#3、啟動容器

#啟動Minio物件儲存(初次啟動請等1分鐘)
docker run -d -p 9000:9000 -p 9090:9090 --name b2b2c-shop-minio --ip 172.28.0.102 --network my-net sichengtech/b2b2c-shop-minio server /data2 --console-address ":9090"  

#啟動MySQL容器(初次啟動需要3~5分鐘初始化資料,一定要耐心等待)
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --ip 172.28.0.105 --network my-net --name b2b2c-shop-mysql56 sichengtech/b2b2c-shop-mysql56  
  
#啟動Solr8搜尋引擎
docker run -d -p 8983:8983 -t --name b2b2c-shop-solr8 --ip 172.28.0.101 --network my-net sichengtech/b2b2c-shop-solr8  

#簡體中文商城主程式(需要等1~2分鐘MySQL容器初始化完成再啟動)
docker run -d -p 8080:8080 --name b2b2c-shop-open-cn --ip 172.28.0.10 --network my-net sichengtech/b2b2c-shop-open-cn  

#英文國際商城主程式(需要等1~2分鐘前一個容器啟動完成再啟動)
docker run -d -p 8081:8080 --name b2b2c-shop-open-en --ip 172.28.0.11 --network my-net sichengtech/b2b2c-shop-open-en    

剛剛啟動的5個容器
剛剛啟動的5個容器
常見容器啟動失敗原因:
1、商城主程式容器啟動時日誌報錯,可能是因為MySQL容器還未初始化資料完成,就急於啟動商城主程式容器。請等待3~5分鐘初始化資料,再重啟商城主程式容器。
2、Minio物件儲存容器啟動後看不到兩個桶,可能是因為同時急於啟動多個容器造成的,請先單獨啟動Minio物件儲存容器並請等1分鐘。

#4、手動生成SOLR索引

登入商城的管理後臺,手動生成SOLR索引。因為這是剛剛部署的新系統,所以要手動全量生成SOLR索引一次。
登入管理臺:http://localhost:8080/admin/index.do 賬號在之前的文件中的獲取。 登入賬號在新視窗開啟
按下圖操作
手動生成SOLR索引

#5、訪問商城

以簡體中文商城為例:
前臺:http://localhost:8080/
會員中心:http://localhost:8080/member/index.htm
商家後臺:http://localhost:8080/seller/index.htm
賬號在之前的文件中的獲取。 登入賬號在新視窗開啟
商城前臺

管理後臺:http://localhost:8080/admin/index.do
賬號在之前的文件中的獲取。 登入賬號在新視窗開啟
管理後臺

以國際文商城為例(賬號同上):
前臺:http://localhost:8081/
會員中心:http://localhost:8081/member/index.htm
商家後臺:http://localhost:8081/seller/index.htm
管理後臺:http://localhost:8081/admin/index.do
商城前臺

#Solr搜尋引擎後臺

Solr搜尋引擎後臺:http://localhost:8983/solr/#/
無需要賬號密碼
Solr搜尋引擎後臺

#Minio物件儲存後臺

Minio後臺:http://localhost:9090/login
Minio的管理賬號是: admin/admin123
Minio物件儲存後臺

#MySQL資料

ip='127.0.0.1'
port='3306'
user='root'
password='123456'

#Docker容器執行的Tomcat的catalina.out檔案在哪裡?

伺服器環境是使用docker執行的tomcat服務。
但是進入docker容器找到tomcat,在logs目錄下並沒有常見的/usr/local/tocmat/logs/catalina.out檔案。
在/usr/local/tocmat/logs目錄下,發現其檔案結構如下:

catalina.2020-04-03.log
host-manager.2020-04-03.log
localhost_access_log.2020-04-03.txt
localhost.2020-04-03.log
manager.2020-04-03.log
Docker容器執行的Tomcat,catalina.out檔案在哪裡?
深入分析發現,只有在使用命令catalina.sh start來啟動tomcat的時候才會建立catalina.out檔案。
但docker容器的啟動tomcat執行命令就是sh /usr/local/tocmat/bin/catalina.sh run。
這樣啟動tomcat時候,是不會建立catalina.out檔案的,而是日誌將會託管給docker容器。
這樣做的目的就是把日誌託管給docker容器,更符合容器的規範。可使用命令 docker logs -f 容器名 檢視日誌

相關文章