目标
使用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 容器名 查看日志