docker compose部署mall

2024-02-09 15:52
文章标签 部署 docker compose mall

本文主要是介绍docker compose部署mall,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装环境软件

1.拉取镜像

docker pull mysql:5.7
docker pull redis:7
docker pull nginx:1.22
docker pull rabbitmq:3.9-management
docker pull elasticsearch:7.17.3
docker pull kibana:7.17.3
docker pull logstash:7.17.3
docker pull mongo:4
docker pull minio/minio

2.创建目录

mkdir -p  /opt/mall/minio/data
mkdir -p /opt/mall/redis/data
mkdir -p /opt/mall/mysql/{data,conf,log}
mkdir -p /opt/mall/nginx/{conf,html,logs}
mkdir -p /opt/mall/rabbitmq/data
mkdir -p /opt/mall/elasticsearch/{plugins,data}
mkdir -p /opt/mall/logstash
mkdir -p /opt/mall/mongo/db
mkdir -p /opt/mall/minio/data

3.修改目录权限

chmod 777 /opt/mall/elasticsearch/data

4.配置nginx

4.1nginx.conf

cd /opt/mall/nginx/conf
vim nginx.conf

内容如下

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}
}

4.2mime.types

vim mime.types

内容如下


types {text/html                                        html htm shtml;text/css                                         css;text/xml                                         xml;image/gif                                        gif;image/jpeg                                       jpeg jpg;application/javascript                           js;application/atom+xml                             atom;application/rss+xml                              rss;text/mathml                                      mml;text/plain                                       txt;text/vnd.sun.j2me.app-descriptor                 jad;text/vnd.wap.wml                                 wml;text/x-component                                 htc;image/avif                                       avif;image/png                                        png;image/svg+xml                                    svg svgz;image/tiff                                       tif tiff;image/vnd.wap.wbmp                               wbmp;image/webp                                       webp;image/x-icon                                     ico;image/x-jng                                      jng;image/x-ms-bmp                                   bmp;font/woff                                        woff;font/woff2                                       woff2;application/java-archive                         jar war ear;application/json                                 json;application/mac-binhex40                         hqx;application/msword                               doc;application/pdf                                  pdf;application/postscript                           ps eps ai;application/rtf                                  rtf;application/vnd.apple.mpegurl                    m3u8;application/vnd.google-earth.kml+xml             kml;application/vnd.google-earth.kmz                 kmz;application/vnd.ms-excel                         xls;application/vnd.ms-fontobject                    eot;application/vnd.ms-powerpoint                    ppt;application/vnd.oasis.opendocument.graphics      odg;application/vnd.oasis.opendocument.presentation  odp;application/vnd.oasis.opendocument.spreadsheet   ods;application/vnd.oasis.opendocument.text          odt;application/vnd.openxmlformats-officedocument.presentationml.presentationpptx;application/vnd.openxmlformats-officedocument.spreadsheetml.sheetxlsx;application/vnd.openxmlformats-officedocument.wordprocessingml.documentdocx;application/vnd.wap.wmlc                         wmlc;application/wasm                                 wasm;application/x-7z-compressed                      7z;application/x-cocoa                              cco;application/x-java-archive-diff                  jardiff;application/x-java-jnlp-file                     jnlp;application/x-makeself                           run;application/x-perl                               pl pm;application/x-pilot                              prc pdb;application/x-rar-compressed                     rar;application/x-redhat-package-manager             rpm;application/x-sea                                sea;application/x-shockwave-flash                    swf;application/x-stuffit                            sit;application/x-tcl                                tcl tk;application/x-x509-ca-cert                       der pem crt;application/x-xpinstall                          xpi;application/xhtml+xml                            xhtml;application/xspf+xml                             xspf;application/zip                                  zip;application/octet-stream                         bin exe dll;application/octet-stream                         deb;application/octet-stream                         dmg;application/octet-stream                         iso img;application/octet-stream                         msi msp msm;audio/midi                                       mid midi kar;audio/mpeg                                       mp3;audio/ogg                                        ogg;audio/x-m4a                                      m4a;audio/x-realaudio                                ra;video/3gpp                                       3gpp 3gp;video/mp2t                                       ts;video/mp4                                        mp4;video/mpeg                                       mpeg mpg;video/quicktime                                  mov;video/webm                                       webm;video/x-flv                                      flv;video/x-m4v                                      m4v;video/x-mng                                      mng;video/x-ms-asf                                   asx asf;video/x-ms-wmv                                   wmv;video/x-msvideo                                  avi;
}

 

5.配置logstash

cd /opt/mall/logstash/vim logstash.conf

内容如下


input {tcp {mode => "server"host => "0.0.0.0"port => 4560codec => json_linestype => "debug"}tcp {mode => "server"host => "0.0.0.0"port => 4561codec => json_linestype => "error"}tcp {mode => "server"host => "0.0.0.0"port => 4562codec => json_linestype => "business"}tcp {mode => "server"host => "0.0.0.0"port => 4563codec => json_linestype => "record"}
}
filter{if [type] == "record" {mutate {remove_field => "port"remove_field => "host"remove_field => "@version"}json {source => "message"remove_field => ["message"]}}
}
output {elasticsearch {hosts => "192.168.168.110:9200"index => "mall-%{type}-%{+YYYY.MM.dd}"}
}

6.编写环境软件脚本

cd /opt/mall
vim docker-compose-env.yml

内容如下

version: '3'
services:mysql:image: mysql:5.7container_name: mysqlcommand: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_cirestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456 #设置root帐号密码ports:- 3306:3306volumes:- /opt/mall/mysql/data:/var/lib/mysql #数据文件挂载- /opt/mall/mysql/conf:/etc/mysql #配置文件挂载- /opt/mall/mysql/log:/var/log/mysql #日志文件挂载redis:image: redis:7container_name: rediscommand: redis-server --appendonly yesvolumes:- /opt/mall/redis/data:/data #数据文件挂载ports:- 6379:6379nginx:image: nginx:1.22container_name: nginxvolumes:- /opt/mall/nginx/conf:/etc/nginx #配置文件目录挂载- /opt/mall/nginx/html:/usr/share/nginx/html #静态资源根目录挂载- /opt/mall/nginx/logs:/var/log/nginx #日志文件挂载ports:- 80:80rabbitmq:image: rabbitmq:3.9-managementcontainer_name: rabbitmqvolumes:- /opt/mall/rabbitmq/data:/var/lib/rabbitmq #数据文件挂载ports:- 5672:5672- 15672:15672elasticsearch:image: elasticsearch:7.17.3container_name: elasticsearchenvironment:- "cluster.name=elasticsearch" #设置集群名称为elasticsearch- "discovery.type=single-node" #以单一节点模式启动- "ES_JAVA_OPTS=-Xms512m -Xmx1024m" #设置使用jvm内存大小volumes:- /opt/mall/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载- /opt/mall/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载ports:- 9200:9200- 9300:9300logstash:image: logstash:7.17.3container_name: logstashenvironment:- TZ=Asia/Shanghaivolumes:- /opt/mall/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:4563kibana:image: kibana:7.17.3container_name: kibanalinks:- elasticsearch:es #可以用es这个域名访问elasticsearch服务depends_on:- elasticsearch #kibana在elasticsearch启动之后再启动environment:- "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址ports:- 5601:5601mongo:image: mongo:4container_name: mongovolumes:- /opt/mall/mongo/db:/data/db #数据文件挂载ports:- 27017:27017minio:image: minio/miniocontainer_name: miniocommand: server /data --console-address ":9001" #指定数据目录及console运行端口启动volumes:- /opt/mall/minio/data:/data #数据目录挂载environment:- "MINIO_ROOT_USER=minioadmin"- "MINIO_ROOT_PASSWORD=minioadmin"ports:- 9090:9000- 9001:9001

7.启动所有环境软件

docker-compose -f docker-compose-env.yml up -d

 

8.配置mysql

mkdir -p /opt/mall/mysql/backup

拷贝官方的数据库脚本

脚本名称:mall.sql

脚本内容

导入数据库脚本

#进入mysql容器
docker exec -it mysql /bin/bash
#连接到mysql服务
mysql -uroot -p123456 --default-character-set=utf8
#创建远程访问用户
grant all privileges on *.* to 'reader' @'%' identified by '123456';
#创建mall数据库
create database mall character set utf8;
#使用mall数据库
use mall;
#导入mall.sql脚本
source /mall.sql;

9.配置rabbitmq


rabbitmq
创建mall用户,账户/密码:mall/mall
创建一个新的虚拟host为:/mall
将新的虚拟host授予mall用户

安装应用

1.创建目录

mkdir -p /opt/mall/app/mall-admin/logs
mkdir -p /opt/mall/app/mall-search/logs
mkdir -p /opt/mall/app/mall-portal/logs

2.创建配置文件

/opt/mall/app
vim docker-compose-app.yml

内容如下

version: '3'
services:mall-admin:image: mall/mall-admin:1.0-SNAPSHOTcontainer_name: mall-adminports:- 10061:8080volumes:- /opt/mall/app/mall-admin/logs:/var/logs- /etc/localtime:/etc/localtimeenvironment:- 'TZ="Asia/Shanghai"'external_links:- mysql:db #可以用db这个域名访问mysql服务mall-search:image: mall/mall-search:1.0-SNAPSHOTcontainer_name: mall-searchports:- 10062:8081volumes:- /opt/mall/app/mall-search/logs:/var/logs- /etc/localtime:/etc/localtimeenvironment:- 'TZ="Asia/Shanghai"'external_links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务- mysql:db #可以用db这个域名访问mysql服务mall-portal:image: mall/mall-portal:1.0-SNAPSHOTcontainer_name: mall-portalports:- 10063:8085volumes:- /opt/mall/app/mall-portal/logs:/var/logs- /etc/localtime:/etc/localtimeenvironment:- 'TZ="Asia/Shanghai"'external_links:- redis:redis #可以用redis这个域名访问redis服务- mongo:mongo #可以用mongo这个域名访问mongo服务- mysql:db #可以用db这个域名访问mysql服务- rabbitmq:rabbit #可以用rabbit这个域名访问rabbitmq服务

3.启动

docker compose -f docker-compose-app.yml up -d

这篇关于docker compose部署mall的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694651

相关文章

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测