mall在linux环境下的部署(基于docker容器)

2023-05-16

mall在docker容器下部署涉及到MySQL、Redis、Nginx、RabbitMQ、MongoDB、Elasticsearch、Logstash、Kibana,以及Spring Boot应用部署。

本人事先已经拉取过镜像了,下文中就不进行镜像拉取展示了。
docker images 是列出docker镜像指令
在这里插入图片描述

一、 docker环境安装

1、安装yum-utils
yum install -y yum-utils device-mapper-persistent-data lvm2
2、为yum源添加docker仓库位置
在这里插入图片描述

3、安装docker
yum install docker-ce
4、启动docker
systemctl start docker
安装好docker环境后接着安装下面几个容器

本人事先拉取了所需镜像,后续操作不进行镜像拉取展示。

二、MySQL安装

1、拉取镜像
docker pull mysql:5.7
2、创建MySQL容器
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
在这里插入图片描述

3、进入运行的MySQL容器(如果报错检查一下容器是否已经启动)
docker exec -it mysql /bin/bash
在这里插入图片描述

4、使用mysql命令打开客户端
mysql -uroot -proot --default-character-set=utf8
在这里插入图片描述

5、创建mall数据库
create database mall character set utf8;
在这里插入图片描述

6、安装上传下载插件,将mall.sql上传到linux服务器上
yum -y install lrzsz
在这里插入图片描述

找到文件用finalShell工具直接拖到对应目录
在这里插入图片描述

上传上来之后ls查看文件是否上传上来了(先切换到mydata目录)
在这里插入图片描述

7、将mall.sql文件拷贝到mysql容器的/目录下
docker cp /mydata/mall.sql mysql:/
8、将sql文件导入到数据库(在mysql客户端下操作)
use mall;
source /mall.sql;
9、创建一个reader账号,密码123456并修改权限,使得任何ip都能访问
grant all privileges on . to ‘reader’ @’%’ identified by ‘123456’;
在这里插入图片描述

三、Redis安装

1、拉取Redis5.0的docker继续
docker pull redis:5
2、创建Redis容器
docker run -p 6379:6379 --name redis
-v /mydata/redis/data:/data
-d redis:5 redis-server --appendonly yes
在这里插入图片描述

3、进入容器使用redis-cli命令进行连接
docker exec -it redis redis-cli
在这里插入图片描述

四、Nginx安装

1、拉取Nginx1.10的docker镜像
docker pull nginx:1.10
2、先创建容器并运行一次容器(为了拷贝配置文件)
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
在这里插入图片描述

3、将容器内的配置文件拷贝到指定目录
docker container cp nginx:/etc/nginx /mydata/nginx/
4、修改文件名称(必须在mydata/nginx目录下修改,否则后续Nginx容器会因为找不到配置文件而启动不成功)
mv nginx conf
在这里插入图片描述

下图已经把nginx文件名修改为conf
在这里插入图片描述

5、终止并删除容器
docker stop nginx
docker rm nginx
在这里插入图片描述

6、使用下面命令重新创建并启动nginx容器
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

在这里插入图片描述

五、RabbitMQ安装

1、拉取rabbitmq3.7.15的docker镜像
docker pull rabbitmq:3.7.15
2、创建并启动rabbitmq容器
docker run -p 5672:5672 -p 15672:15672 --name rabbitmq
-d rabbitmq:3.7.15
在这里插入图片描述

3、进入容器并开启管理功能
docker exec -it rabbitmq /bin/bash
rabbitmq-plugins enable rabbitmq_management
在这里插入图片描述

4、开启防火墙
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload
在这里插入图片描述

5、用浏览器访问查看是否安装成功:http://192.168.100.135:15672
在这里插入图片描述

6、输入账号密码并登录:guest(账号密码一样)
7、创建账号并设置其角色为管理员:mall(账号密码一样)
在这里插入图片描述

8、创建一个新的虚拟host为:/mall
在这里插入图片描述

8、点击mall用户进入用户配置页面
在这里插入图片描述

9、给mall用户配置该虚拟host的权限
在这里插入图片描述

六、Elasticsearch安装

1、拉取Elasticsearch7.6.2的docker镜像
docker pull elasticsearch:7.6.2
2、修改虚拟内存区域大小,否则会因为过小而无法启动
sysctl -w vm.max_map_count=262144
在这里插入图片描述

3、创建并启动elasticsearch容器
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:7.6.2
在这里插入图片描述

4、启动时会发现/usr/share/elasticsearch/data目录没有访问权限,只需要修改/mydata/elasticsearch/data目录的权限,再重新启动即可;
chmod 777 /mydata/elasticsearch/data/
在这里插入图片描述

5、安装中文分词器IKAnalyzer,并重新启动(先进入容器再安装)
docker exec -it elasticsearch /bin/bash
如果进入容器报错的话先重启docker容器服务
systemctl start docker
启动Elasticsearch容器
在这里插入图片描述

上述完成之后安装分词器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
在这里插入图片描述

6、开启防火墙
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
在这里插入图片描述

7、浏览器访问返回版本信息http://192.168.100.135:9200/
在这里插入图片描述

七、Logstash安装

1、拉取Logstash7.6.2的docker镜像
docker pull logstash:7.6.2
2、修改Logstash的配置文件logstash.conf中output节点下的Elasticsearch连接地址为es:9200,配置文件地址如下,用IDEA打开修改

在这里插入图片描述
在这里插入图片描述

3、创建/mydata/logstash目录,并将Logstash的配置文件logstash.conf拷贝到该目录;
mkdir /mydata/logstash
在这里插入图片描述

用Shell工具连接后直接拖到对应目录下
在这里插入图片描述

4、创建并启动容器
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插件
[root@ywx mydata]# docker exec -it logstash /bin/bash
bash-4.2$ logstash-plugin install logstash-codec-json_lines

在这里插入图片描述

八、Kibana安装

1、拉取Kibana7.6.2的docker镜像
docker pull kibana:7.6.2
2、创建并启动Kibana容器
docker run --name kibana -p 5601:5601
–link elasticsearch:es
-e “elasticsearch.hosts=http://es:9200”
-d kibana:7.6.2
在这里插入图片描述

3、开启防火墙
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload
在这里插入图片描述

4、浏览器进行访问测试http://192.168.100.135:5601/
在这里插入图片描述

九、MongoDB安装

1、拉取MongoDB4.2.5的docker镜像
docker pull mongo:4.2.5
2、创建并启动容器
docker run -p 27017:27017 --name mongo
-v /mydata/mongo/db:/data/db
-d mongo:4.2.5

在这里插入图片描述

Docker全部环境安装完成
所有在运行的容器

在这里插入图片描述

十、下面是SpringBoot应用部署

1、用IDEA打开下面这个项目
在这里插入图片描述

2、修改项目根目录下的pom.xml中的docker.host属性(修改成自己linux服务器的地址)
在这里插入图片描述

3、如果项目根目录的pom.mxl中docker-maven-plugin的节点被注释掉了就打开注释,使项目在打包时直接构建Docker镜像;
在这里插入图片描述

4、改项目文件的ip地址为自己linux服务器的地址
在这里插入图片描述

下面以mall-admin这里做演示,其他文件修改ip地址省略,自行修改为对应服务器地址即可

在这里插入图片描述

上述操作完成后进行打包
在这里插入图片描述

等待打包即可,打包完成控制台显示如下图

在这里插入图片描述

错误解决:
1、出现下面错误去pom.xml文件把
注释掉
在这里插入图片描述
在这里插入图片描述

2、如果出现以下错误表示对应端口未开启
在这里插入图片描述

解决方法:
编辑/usr/lib/systemd/system/docker.service文件,
将原来的删除,添加下图的内容然后保存
在这里插入图片描述

修改完后执行下面命令
Systemctl daemon-reload
Systemctl restart docker
上面是重启docker命令,执行上面的命令后需要自己手动去把容器启动一下,这里省略

开启防火墙,添加2375端口
[root@node1 ~]# systemctl start firewalld
[root@node1 ~]# firewall-cmd --zone=public --add-port=2375/tcp --permanent
[root@node1 ~]# firewall-cmd --reload
然后去查看端口起来没有
[root@ywx ~]# netstat -tnl |grep 2375
在这里插入图片描述

上面操作完成后重新打包即可

十一、部署

打包好后会有下面三个镜像
在这里插入图片描述

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/mall-admin:1.0-SNAPSHOT
在这里插入图片描述

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/mall-search:1.0-SNAPSHOT
在这里插入图片描述

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/mall-portal:1.0-SNAPSHOT
在这里插入图片描述

上面三个容器创号后检查一下是否已经起来
在这里插入图片描述

4、开启防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=8085/tcp --permanent
firewall-cmd –reload
在这里插入图片描述

5、访问端口进行测试
• mall-admin的api接口文档地址: http://192.168.100.135:8080/swagger-ui.html
在这里插入图片描述

• mall-search的api接口文档地址:http://192.168.100.135:8081/swagger-ui.html
在这里插入图片描述

• mall-portal的api接口文档地址:http://192.168.100.135:8085/swagger-ui.html
在这里插入图片描述

到此完成部署!!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mall在linux环境下的部署(基于docker容器) 的相关文章

随机推荐

  • Ubuntu18下Vscode的安装及环境配置

    Ubuntu18下Vscode的安装及环境配置 转载自 xff1a https www douban com note 719118404 在linux下使用vscode xff1a 1 安装 xff1a 在官网下载deb格式的文件 xff
  • ubuntu18.04安装docker和nvidia-docker2

    ubuntu18 04安装docker和nvidia docker 1 卸载旧版本的docker 旧版本的 Docker 被称为 docker docker io 或 docker engine 如果安装了这些 xff0c 需要卸载它们 x
  • docker上运行ros

    docker上运行ros 1 方法一 xff1a 使用小鱼的一键安装工具 xff1a span class token function wget span http fishros com install span class token
  • 记录使用docker运行ros过程中遇到的问题

    记录使用docker运行ros过程中遇到的问题 1 问题一 xff1a QStandardPaths XDG RUNTIME DIR not set defaulting to tmp runtime root No protocol sp
  • ROS 节点初始化步骤、topic/service创建及使用

    目录 1 节点初始化步骤 2 service 创建及使用 3 topic创建及使用 4 框架总结 这是一个总结复盘的记录 1 节点初始化步骤 在 mian 函数中使用 ros init 初始化节点 xff0c 注册节点名 xff0c 这里注
  • java 方法的注意事项

    方法的注意事项 1 方法不能嵌套定义 2 方法的返回值类型为void xff0c 表示该方法没有返回值 xff0c 没有返回值的方法可以省略return语句不写 xff0c 如果要编写return xff0c 后面不能跟具体的数据 3 re
  • java 方法重载

    方法名相同 xff0c 参数也完全相同 xff0c 称为方法的重复定义 xff0c 是一种冲突性的错误 如下 xff1a 在同一个类中 xff0c 定义了多个同名的方法 xff0c 但每个方法具有不同的参数或参数个数 xff0c 这些同名的
  • java 方法的参数传递(基本数据类型、引用数据类型)

    基本数据类型传递 xff1a span class token keyword public span span class token keyword class span span class token class name Test
  • java 方法求数组最大值

    需求 xff1a 设计一个方法用于获取数组中元素的最大值 xff1a span class token keyword public span span class token keyword class span span class t
  • docker 拉取镜像、创建并启动容器

    获取镜像 默认情况下 xff0c 使用docker pull命令 xff0c 会从官方的Docker Hub库中将镜像拉取到本地 首先介绍这条命令的格式 xff1a docker pull OPTIONS lt 仓库名 gt xff1a l
  • Docker 停止容器

    使用docker stop停止一个容器 docker stop可以用来终止一个正在运行的容器 它的命令格式如下 xff1a docker stop OPTIONS Container Container 其中 xff1a docker st
  • 进入docker容器

    进入docker容器的三种方法 1 使用ssh登陆进容器 xff1b 2 使用nsenter nsinit等第三方工具 xff1b 3 使用docker本身提供的工具 Docker目前主要提供了docker exec和docker atta
  • docker删除容器

    删除容器使用 docker rm 命令 xff1a 1 删除容器 1 首先需要停止所有的容器 docker stop docker ps a q 2 删除所有的容器 只删除单个时把后面的变量改为container id即可 docker r
  • docker 基于Commit定制镜像

    在Docker中提供了一个命令docker commit xff0c 该命令会把对容器的修改提交成一个镜像 换句话说 xff0c 就是在原有镜像的基础上 xff0c 再叠加上容器的存储层 xff08 该存储层仅仅保存了容器所做的修改 xff
  • Ubuntu 实现shell文件的开机运行(从原理到实现)

    目录 0 Linux的开机启动顺序 1 完善 rc local service 脚本 3 创建 rc local 脚本 4 总结 设置 shell 脚本开机启动的方法有挺多 xff0c 比如 xff1a 添加到 init d 中的方法 xf
  • docker 保存镜像、加载镜像

    将镜像保存到tar包 docker save用来将一个或者多个镜像保存为一个tar文件 xff0c 默认标准输出流的方式输出 xff0c 它的具体语法如下 xff1a docker save OPTIONS IMAGE IMAGE 其中 x
  • docker 导入导出容器

    将 容器的文件系统 保存到tar包 docker export是将 容器的文件系统 导出为一个tar包 注意是操作的对象是容器 xff01 它的具体语法如下 xff1a docker export OPTIONS CONTAINER 其中
  • docker 删除镜像

    删除镜像 如果要删除本地的镜像 xff0c 可以使用 docker rmi xff08 注意rm为删除容器 xff0c 而rmi为删除镜像 xff0c 其中i代表image xff09 命令 xff0c 它的具体语法如下 xff1a doc
  • docker 构建私有Registry、私人仓库

    1 使用docker tag给busybox加上一个标签localhost 5000 busybox latest xff1b docker tag busybox localhost span class token operator s
  • mall在linux环境下的部署(基于docker容器)

    mall在docker容器下部署涉及到MySQL Redis Nginx RabbitMQ MongoDB Elasticsearch Logstash Kibana xff0c 以及Spring Boot应用部署 本人事先已经拉取过镜像了