mall项目之Spring Cloud云版本

mall项目简介:mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

mall项目在Linux和Windows环境下的部署(基于 Docker 容器)

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 中安装的。

方法一

  1. 先安装 alien 和 fakeroot 这两个工具,其中前者可以将 rpm 包转换为 deb 包。安装命令为:
sudo apt-get install alien fakeroot
  1. 将需要安装的 rpm 包下载备用,假设为 package.rpm。
  2. 使用 alien 将 rpm 包转换为 deb 包:
fakeroot alien package.rpm
  1. 一旦转换成功,我们可以即刻使用以下指令来安装:
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下载镜像卡死或太慢

  1. 先再阿里云注册账号,不需要绑定什么,直接注册就可以了,有账号的直接登录就好。
    地址:https://cr.console.aliyun.com 跳转
    搜索 容器镜像服务
  2. 创建镜像仓库
  3. 配置镜像加速器在这里插入图片描述

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打包命令

参考链接: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

在这里插入图片描述

来源:

  1. mall学习教程
  2. 在Ubuntu中安装Docker和docker的使用
  3. Spring Boot 实战项目 mall 在 Linux 环境下的部署(基于 Docker 容器)
  4. Ubuntu20.04上安装RabbitMQhttps
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值