栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

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

到此完成部署!!!!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/581533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号