使用Docker快速部署開源商城
目標
使用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個鏡像
#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個容器
常見容器啟動失敗原因:
1、商城主程序容器啟動時日志報錯,可能是因為MySQL容器還未初始化數據完成,就急于啟動商城主程序容器。請等待3~5分鐘初始化數據,再重啟商城主程序容器。
2、Minio對象存儲容器啟動后看不到兩個桶,可能是因為同時急于啟動多個容器造成的,請先單獨啟動Minio對象存儲容器并請等1分鐘。
#4、手動生成SOLR索引
登錄商城的管理后臺,手動生成SOLR索引。因為這是剛剛部署的新系統,所以要手動全量生成SOLR索引一次。
登錄管理臺:http://localhost:8080/admin/index.do 賬號在之前的文檔中的獲取。 登錄賬號
按下圖操作
#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/#/
無需要賬號密碼
#Minio對象存儲后臺
Minio后臺:http://localhost:9090/login
Minio的管理賬號是: admin/admin123
#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 容器名 查看日志

浙公網安備 33010602011771號