mall项目简介:mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
mall项目在Linux和Windows环境下的部署(基于 Docker 容器)
- 1.准备工作
- 2.mall在Linux环境下的部署(基于Docker Compose)
1.准备工作
1.Docker环境安装
1.问题一bash: yum: command not found
Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
查看有无 yum安装包 ,有的话卸载:
查看:rpm -qa |grep yum
卸载:rpm -aq|grep yum|xargs rpm -e --nodeps
第一步:到这个网站去下载如下RPM包 :http://mirrors.163.com/centos/6/os/x86_64/Packages/下载
1 python-urlgrabber-3.9.1-11.el6.noarch.rpm
2 yum-cron-3.2.29-81.el6.centos.noarch.rpm
3 yum-3.2.29-81.el6.centos.noarch.rpm
4 yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
5 yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm
第二步:下载完成后安装:
rpm -ivh --force --nodeps python-urlgrabber-3.9.1-11.el6.noarch.rpm
rpm -ivh --force --nodeps yum-cron-3.2.29-81.el6.centos.noarch.rpm
rpm -ivh --force --nodeps yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh --force --nodeps yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm
# 注意最后两个包必需同时安装,否则会相互依赖
yum
# 运行yum命令
第三步:下载阿里云的yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
# 下载以后生成缓存,命令:
yum makecache
# 如果有提示错误[Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
# 运行下面的命令:
sed -i 's/\$releasever/6/' CentOS-Base.repo
# 备注:把文件里的$releasever替换为6(要在CentOS-Base.repo文件目录下使用该命令,也可以手动通过WinSCP修改)
# 重新生成缓存,数字不为0,就OK了:
yum clean all
yum makecache
2.问题二rpm文件安装过程提示error: unpacking of archive failed on file
Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。
sudo apt-get install alien #alien默认没有安装,所以首先要安装它
sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成一个同名的xxxx.deb
sudo dpkg -i xxxx.deb #安装
【注】用alien转换的deb包并不能保证100%顺利安装,所以可以找到deb最好直接用deb
有时候,我们想要使用的软件并没有被包含到 Ubuntu 的仓库中,而程序本身也没有提供让 Ubuntu 可以使用的 deb 包,你又不愿从源代码编译。但假如软件提供有 rpm 包的话,我们也是可以在 Ubuntu 中安装的。
方法一:
- 先安装 alien 和 fakeroot 这两个工具,其中前者可以将 rpm 包转换为 deb 包。安装命令为:
sudo apt-get install alien fakeroot
- 将需要安装的 rpm 包下载备用,假设为 package.rpm。
- 使用 alien 将 rpm 包转换为 deb 包:
fakeroot alien package.rpm
- 一旦转换成功,我们可以即刻使用以下指令来安装:
sudo dpkg -i package.deb
方法二:
sudo apt-get install rpm alien
alien -d package.rpm
sudo dpkg -i package.deb
3.问题三/usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
报错:-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
python多版本造成的问题,找不到python的路径
(1) 查找python
whereis python
(2) 查找yum
whereis yum
(3) 修改
vi /usr/bin/yum
# 将首行的 !/usr/bin/python
# 更改成 !/usr/lib/python2.6
# 3.x版本会报错
保存退出!
4.Ubuntu下安装docker
(1) 更新ubuntu的apt源索引
sudo apt-get update
(2) 安装包允许apt通过HTTPS使用仓库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
(3) 添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
(4) 设置Docker稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
(5) 添加仓库后,更新apt源索引
sudo apt-get update
(6) 安装最新版Docker CE(社区版)
sudo apt-get install docker-ce
(7) 检查Docker CE是否安装正确
sudo docker run hello-world
出现如下信息,表示安装成功
(8) 启动与停止
# 启动docker
sudo service docker start
# 停止docker
sudo service docker stop
# 重启docker
sudo service docker restart
2.Mysql安装
(1) 下载mysql5.7的docker镜像:
docker pull mysql:5.7
(2) 使用docker命令启动:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
(3) 进入运行mysql的docker容器:
docker exec -it mysql /bin/bash
(4) 使用mysql命令打开客户端:
mysql -uroot -proot --default-character-set=utf8
(5) 创建mall数据库:
mysql> create database mall character set utf8;
(6) 安装上传下载插件,并将docment/sql/mall.sql上传到Linux服务器上:
sudo apt-get install lrzsz
(7) 将mall.sql文件拷贝到mysql容器的/目录下:
docker cp /mydata/mall.sql mysql:/
(8) 将sql文件导入到数据库:
mysql> use mall;
mysql> source /mall.sql;
(9) 创建一个reader帐号并修改权限,使得任何ip都能访问:
grant all privileges on *.* to 'reader' @'%' identified by '123456';
1.问题一docker 权限问题 Got permission denied while trying to connect to the Docker daemon socket at unix
在用户权限下docker 命令需要 sudo 否则出现以下问题
通过将用户添加到docker用户组可以将sudo去掉,命令如下
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
2.问题二docker下载镜像卡死或太慢
- 先再阿里云注册账号,不需要绑定什么,直接注册就可以了,有账号的直接登录就好。
地址:https://cr.console.aliyun.com 跳转
搜索 容器镜像服务 - 创建镜像仓库
- 配置镜像加速器
3.问题三SecureCRT工具上传、下载文件操作
(1) 在使用SecureCRT上传下载之前需要给服务器安装lrzsz
sudo apt-get install lrzsz
(2) 命令sz、rz的使用方法:
rz中的r意为received(接收),输入rz时意为服务器接收文件,即将文件从本地上传到服务器;
sz中的s意为send(发送),输入sz时意为服务器要发送文件,即从服务器发送文件到本地,或是说本地从服务器上下载文件。
注:不论是send还是received,动作都是在服务器上发起的。
上传文件只需在shell终端仿真器中输入命令"rz",即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下。
下载文件只需在shell终端仿真器中输入命令"sz 文件名",即可利用Zmodem将文件下载到本地某目录下。通过"File Transfer"可以修改下载到本地的默认路径。设置默认目录:options–>session options–>file transfer.
# 下载一个文件:sz filename
# 下载多个文件:sz filename1 filename2
# 下载dir目录下的所有文件,不包含dir下的文件夹:sz dir/*
4.问题四ERROR: Failed to open file ‘/mall.sql’, error: 2
查找了很多方案都没有解决根本问题,主要原因在于cp 文件时可能出现的路径问题,按照上述步骤应该是没有什么问题,一定注意文件权限的修改,包括mydata文件。
3.Redis安装
(1) 下载redis3.2的docker镜像:
docker pull redis:3.2
(2) 使用docker命令启动:
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-d redis:3.2 redis-server --appendonly yes
(3) 进入redis容器使用redis-cli命令进行连接:
docker exec -it redis redis-cli
4.Nginx安装
(1) 下载nginx1.10的docker镜像:
docker pull nginx:1.10
(2) 从容器中拷贝nginx配置
先运行一次容器(为了拷贝配置文件):
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-d nginx:1.10
将容器内的配置文件拷贝到指定目录(注意文件权限问题):
docker container cp nginx:/etc/nginx /mydata/nginx/
修改文件名称(进入文件目录再执行):
mv nginx conf
终止并删除容器:
docker stop nginx
docker rm nginx
(3) 使用docker命令启动:
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
5.RabbitMQ安装
(1) 下载rabbitmq3.7.15的docker镜像:
docker pull rabbitmq:3.7.15
(2) 使用docker命令启动:
docker run -d --name rabbitmq \
--publish 5671:5671 --publish 5672:5672 --publish 4369:4369 \
--publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \
rabbitmq:3.7.15
(3) 进入容器并开启管理功能:
docker exec -it rabbitmq /bin/bash2
rabbitmq-plugins enable rabbitmq_management
(4) 开启防火墙:
sudo apt install firewalld
# 没有的话先安装再执行
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload
(5) 访问地址查看是否安装成功:http://192.168.3.101:15672/
- 输入账号密码并登录:guest guest
- 创建帐号并设置其角色为管理员:mall mall
- 创建一个新的虚拟host为:/mall
- 点击mall用户进入用户配置页面
- 给mall用户配置该虚拟host的权限
1.问题一:Ubuntu无法访问地址
必须先重启虚拟机再排查问题
官网的快速安装shell代码段
#!/bin/sh
## If sudo is not available on the system,
## uncomment the line below to install it
# apt-get install -y sudo
sudo apt-get update -y
## Install prerequisites
sudo apt-get install curl gnupg -y
## Install RabbitMQ signing key
curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -
## Install apt HTTPS transport
sudo apt-get install apt-transport-https
## Add Bintray repositories that provision latest RabbitMQ and Erlang 23.x releases
## 这里是Ubuntu18.04系统
sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
## Installs the latest Erlang 23.x release.
## Change component to "erlang-22.x" to install the latest 22.x version.
## "bionic" as distribution name should work for any later Ubuntu or Debian release.
## See the release to distribution mapping table in RabbitMQ doc guides to learn more.
deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang
## Installs latest RabbitMQ release
deb https://dl.bintray.com/rabbitmq/debian bionic main
EOF
## Update package indices
sudo apt-get update -y
## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing
# 启动管理界面和外部监控系统
sudo rabbitmq-plugins enable rabbitmq_management
# 启动RabbitMQ
sudo service rabbitmq-server start
6.Elasticsearch安装
(1) 下载elasticsearch6.4.0的docker镜像:
docker pull elasticsearch:6.4.0
(2) 修改虚拟内存区域大小,否则会因为过小而无法启动:
sysctl -w vm.max_map_count=262144
(3) 使用docker命令启动:
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-d elasticsearch:6.4.0
(4) 启动时会发现/usr/share/elasticsearch/data目录没有访问权限,需要修改/mydata/elasticsearch/data目录的权限,再重新启动。
# 可能需要用docker start 容器ID 开启容器
docker exec -it elasticsearch /bin/bash
chmod 777 /mydata/elasticsearch/
chmod 777 /mydata/elasticsearch/data/
(5) 安装中文分词器IKAnalyzer,并重新启动:
#此命令需要在容器中运行
# 可能需要用docker start 容器ID 开启容器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
docker restart elasticsearch
(6) 开启防火墙:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
(7) 访问会返回版本信息:http://localgost:9200/
7.kibana安装
(1) 下载kibana6.4.0的docker镜像:
docker pull kibana:6.4.0
(2) 使用docker命令启动:
docker run --name kibana -p 5601:5601 \
--link elasticsearch:es \
-e "elasticsearch.hosts=http://es:9200" \
-d kibana:6.4.0
(3) 开启防火墙:
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload
(4) 访问地址进行测试:http://192.168.3.101:5601
8.Mongodb安装
(1) 下载mongo3.2的docker镜像:
docker pull mongo:3.2
(2) 使用docker命令启动:
docker run -p 27017:27017 --name mongo \
-v /mydata/mongo/db:/data/db \
-d mongo:3.2
9.Logstash安装
(1) 下载Logstash7.6.2的docker镜像:
docker pull logstash:7.6.2
(2) 修改Logstash的配置文件logstash.conf中output节点下的Elasticsearch连接地址为es:9200,配置文件地址:https://github.com/macrozheng/mall/blob/master/document/elk/logstash.conf
output {
elasticsearch {
hosts => "es:9200"
index => "mall-%{type}-%{+YYYY.MM.dd}"
}
}
(3) 创建/mydata/logstash目录,并将Logstash的配置文件logstash.conf拷贝到该目录;
mkdir /mydata/logstash
(4) 使用如下命令启动Logstash服务;
docker run --name logstash -p 4560:4560 -p 4561:4561 -p 4562:4562 -p 4563:4563 \
--link elasticsearch:es \
-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-d logstash:7.6.2
(5) 进入容器内部,安装json_lines插件。
docker exec -it logstash /bin/bash
logstash-plugin install logstash-codec-json_lines
1.问题一:OpenJDK 64-Bit Server VM warning
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 357892096, 0) failed; error=‘Not enough space’ (errno=12)
查阅资料后得知是正常警告,可以忽视。
2.问题二:# An error report file with more information is saved as:/usr/share/logstash/hs_err_pid333.log
# 通过命令查看系统限制:
ulimit -n
# 修改/etc/security/limits.conf文件,并将机器reboot
[用户名] - nofile 278528
# 手动清理内存并查看结果
echo 3 > /proc/sys/vm/drop_caches
free -h
10.JDK及Tomcat安装
(1)解压已下载好的jdk安装包
tar -zxvf jdk-8u271-linux-x64.tar.gz
(2)配置环境变量,修改profile文件
vim /etc/profile
# 最后一行加入以下代码,JAVA_HOME路径设置自己的路径
JAVA_HOME=/etc/IDEA/jdk/jdk1.8.0_271
JRE_HOME=/etc/IDEA/jdk/jdk1.8.0_271/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
(3)配置文件即时生效
source /etc/profile
(4)解压JDK对应Tomcat安装包
tar -xf apache-tomcat-9.0.39.tar.gz
(5)可将文件夹改名为tomcat
mv apache-tomcat-9.0.39 tomcat
(6)配置tomcat快捷启动脚本命令(把tomcat的脚本文件拷一份到/etc/init.d目录)
cp /etc/IDEA/tomcat/apache-tomcat-9.0.39/bin/catalina.sh /etc/init.d/tomcat
# 把改变的脚本授权给所有用户执行
chmod 755 /etc/init.d/tomcat
(7)拷贝的脚本还需要修改添加一些配置,
添加chkconfig和description两行注释。有这两行注释才能支持chkconfig命令配置服务,同时加上JAVA_HOME和CATALINA_HOME两个变量的声明。
vim /etc/init.d/tomcat
# 在文件中加入以下代码
#chkconfig: 2345 10 90
#description: tomcat service
export JAVA_HOME=/etc/IDEA/jdk/jdk1.8.0_271
export CATALINA_HOME=/etc/IDEA/tomcat/apache-tomcat-9.0.39
(8)添加Tomcat开机启动
chkconfig --add tomcat
(9)配置完成后Tomcat服务即可开机自启动
service tomcat start # 命令启动tomcat服务
service tomcat stop # 命令停止tomcat服务
2.mall在Linux环境下的部署(基于Docker Compose)
1.方法一:安装docker compose
下载最新版的docker-compose文件
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker/docker-compose
添加可执行权限
$ sudo chmod +x /usr/local/bin/docker/docker-compose
测试安装结果
$ docker-compose --version
docker-compose version 1.25.1, build 1719ceb
1.问题一:使用curl 方式安装docker-compose 后执行docker-compose version 检查安装是否成功时出错
进入下面的网址下载目前的最新版:
https://github.com/docker/compose/releases/tag/1.14.0-rc2
下载:docker-compose-Linux-x86_64
重命名为docker-compose并修改此文件的权限
2.方法一:执行docker-compose-env.yml脚本
将文件上传的linux服务器上,执行docker-compose up命令启动mall所依赖的所有服务。
version: '3'
services:
mysql:
image: mysql:5.7
container_name: mysql
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always
environment:
MYSQL_ROOT_PASSWORD: root #设置root帐号密码
ports:
- 3306:3306
volumes:
- /mydata/mysql/data/db:/var/lib/mysql #数据文件挂载
- /mydata/mysql/data/conf:/etc/mysql/conf.d #配置文件挂载
- /mydata/mysql/log:/var/log/mysql #日志文件挂载
redis:
image: redis:5
container_name: redis
command: redis-server --appendonly yes
volumes:
- /mydata/redis/data:/data #数据文件挂载
ports:
- 6379:6379
nginx:
image: nginx:1.10
container_name: nginx
volumes:
- /mydata/nginx/nginx.conf:/etc/nginx/nginx.conf #配置文件挂载
- /mydata/nginx/html:/usr/share/nginx/html #静态资源根目录挂载
- /mydata/nginx/log:/var/log/nginx #日志文件挂载
ports:
- 80:80
rabbitmq:
image: rabbitmq:3.7.15-management
container_name: rabbitmq
volumes:
- /mydata/rabbitmq/data:/var/lib/rabbitmq #数据文件挂载
- /mydata/rabbitmq/log:/var/log/rabbitmq #日志文件挂载
ports:
- 5672:5672
- 15672:15672
elasticsearch:
image: elasticsearch:7.6.2
container_name: elasticsearch
environment:
- "cluster.name=elasticsearch" #设置集群名称为elasticsearch
- "discovery.type=single-node" #以单一节点模式启动
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
volumes:
- /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
- /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
ports:
- 9200:9200
- 9300:9300
logstash:
image: logstash:7.6.2
container_name: logstash
environment:
- TZ=Asia/Shanghai
volumes:
- /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
ports:
- 4560:4560
- 4561:4561
- 4562:4562
- 4563:4563
kibana:
image: kibana:7.6.2
container_name: kibana
links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
environment:
- "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址
ports:
- 5601:5601
mongo:
image: mongo:4.2.5
container_name: mongo
volumes:
- /mydata/mongo/db:/data/db #数据文件挂载
ports:
- 27017:27017
# docker 命令
docker images # 查看docker镜像
docker run [OPTIONS] IMAGE #根据镜像新建并启动容器
docker start 容器ID或容器名称启动容器 #启动容器
docker restart 容器ID或容器名称重新启动容器 #重启容器
docker stop 容器ID或容器名称停止容器 #停止容器
docker stop $(docker ps -aq) #删除所有容器
docker kill 容器ID或容器名称强制停止容器 #强制停止容器
docker ps -aq # 查看所有正在运行容器
docker ps -l # 查看未关闭镜像
docker rm 容器ID #删除容器
3.方法一:执行docker-compose-app.yml脚本
docker-compose -f docker-compose-app.yml up -d
1.问题一:ERROR: pull access denied for mall/mall-search, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied
运行docker之前最好先使用命令docker login登录 参考链接
# 登陆阿里云私有镜像
docker login --username=xxxxxxxx registry.cn-hangzhou.aliyuncs.com
4.方法二:部署项目时使用docker打包命令
5.方法三:构建所有Docker镜像并上传
(1)修改项目根目录下的pom.xml中的docker.host属性:
<properties>
<docker.host>http://虚拟机IP:2375</docker.host>
</properties>
(2)如果项目根目录的pom.mxl中docker-maven-plugin的节点被注释掉了就打开注释,使项目在打包时直接构建Docker镜像;
(3)直接双击根项目mall的package命令可以一次性打包所有应用的Docker镜像;
6.方法二、三docker构建完成进行部署
# 用于部署项目连接网络
docker run -dit -p xxxx(指定端口):8080(通道端口) 镜像名或id
1.部署mall-admin
docker run -p 8080:8080 --name mall-admin \
--link mysql:db \
--link redis:redis \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/admin/logs:/var/logs \
-d mall-admin:admin
2.部署mall-search
docker run -p 8081:8081 --name mall-search \
--link elasticsearch:es \
--link mysql:db \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/search/logs:/var/logs \
-d mall-search:search
3.部署mall-port
docker run -p 8085:8085 --name mall-portal \
--link mysql:db \
--link redis:redis \
--link mongo:mongo \
--link rabbitmq:rabbit \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/portal/logs:/var/logs \
-d mall-port:port
来源: