1.必装环境(最低1核2G)

1.1.安装Docker

1
2
3
4
yum install -y yum-utils device-mapper-persistent-data lvm2    //安装必要工具
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //设置yum源
yum install -y docker-ce //下载docker
systemctl start docker //启动docker

1.2.安装MySQL

1
2
docker pull mysql //下载MySQL镜像
docker run --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 -d mysql //启动MySQL

1.3.安装Redis

1
2
docker pull redis //下载Redis镜像
docker run -p 6379:6379 --name redis -v /data:/data -v /usr/local/src/redis-6.2.6/redis.conf:/etc/redis/redis.conf --restart=always -d redis redis-server /etc/redis/redis.conf --appendonly yes

注意:在docker中启动redis一定要把:daemonize 设置为 no,原因是docker本身需要后台运行,而这个配置选项也是以守护进程启动,两者会冲突

  1. -p 6379:6379: 第一个端口是宿主机端口(服务器端口),第二个端口是容器端口(容器是一个个沙箱外部不不能访问的),将容器的6379端口映射到宿主机的6379端口上,这样可以通过访问宿主机6379来访问redis;
  2. -v /home/docker/redis/config/redis.conf:/etc/redis/redis.conf: 挂载持久化配置 /home/docker/redis/config/redis.conf :是宿主机(服务器)你自己的redis.conf文件路径 /etc/redis/redis.conf : 容器内部的redis.conf文件路径,不用手动创建,容器启动时会把上边宿主机的redis.conf自动映射到该目录下. 这样在修改redis.conf文件时候就不用进入到容器内部去修改了
  3. -v /home/docker/redis/data:/data: 挂载持久化文件 /home/docker/redis/data是宿主机中持久化文件的位置,/data是容器中持久化文件的位置
  4. -d: 后台启动

redis.conf文件中的一些配置:

1
2
3
4
5
6
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321

Redis的其它常见配置:

1
2
3
4
5
6
7
8
9
10
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

1.4.安装nginx(先部署项目再启动)

1
2
docker pull nginx //下载nginx镜像
docker run --name nginx --restart=always -p 80:80 -p 443:443 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/vue:/usr/local/vue -v /usr/local/upload:/usr/local/upload nginx //启动nginx,映射本地配置文件

1.5.安装RabbitMQ和插件

1
2
docker pull rabbitmq:management //下载RabbitMQ镜像
docker run -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -v mq-plugins:/plugins --name mq -p 15672:15672 -p 5672:5672 -d rabbitmq:management //启动RabbitMQ, 账号密码均为admin

下载相应版本的插件,如地址为https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/tag/3.8.9这个对应RabbitMQ的3.8.5以上版本

查看数据卷:

1
docker volume inspect mq-plugins

将插件上传到以上目录,之后进入MQ容器内部来执行安装

1
2
docker exec -it mq bash
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

重启容器

1.6.安装Nacos

1
docker run --env MODE=standalone --name nacos --restart=always -d -p 8848:8848 -e JVM_XMS=64m -e JVM_XMX=128m nacos/nacos-server:1.4.1

1.7.安装Sentinel

1
2
docker pull bladex/sentinel-dashboard
docker run --name sentinel-dashboard --restart=always -p 8858:8858 -d bladex/sentinel-dashboard:latest

1.8.安装Minio

1
2
3
4
5
6
7
8
9
10
11
docker pull minio/minio
docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-d --restart=always \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin123456" \
-v /home/data:/data \
-v /home/config:/root/.minio \
minio/minio server /data --console-address ":9001"

2.选装环境(需2核4G)

2.1.安装elasticsearch (可切换为MYSQL搜索)

1
2
3
4
docker pull elasticsearch:7.9.2 //下载elasticsearch镜像
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.9.2 //启动elasticsearch
docker exec -it elasticsearch /bin/bash //进入elasticsearch容器
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.2/elasticsearch-analysis-ik-7.9.2.zip //安装ik分词器

2.1.1.ES低配版

/mydata/elasticsearch/plugins 下放置解压后的同版本号分词器

1
2
3
4
5
6
docker pull elasticsearch:7.4.2
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx256m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

安装成功后使用postman创建索引

QQ截图20210812211857.png

JSON参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"mappings": {
"properties": {
"id": {
"type": "integer"
},
"articleTitle": {
"type": "text",
"analyzer": "ik_max_word"
},
"articleContent": {
"type": "text",
"analyzer": "ik_max_word"
},
"isDelete": {
"type": "integer"
},
"status": {
"type": "integer"
}
}
}
}
java

查看索引结构

QQ截图20210402215812.png

如图所示则创建成功

2.2.安装MaxWell (ElasticSearch同步数据)

1
2
docker pull zendesk/maxwell //下载MaxWell镜像
docker run --name maxwell --restart=always -d zendesk/maxwell bin/maxwell --user='数据库用户名' --password='数据库密码' --host='IP地址' --producer=rabbitmq --rabbitmq_user='MQ用户名' --rabbitmq_pass='MQ密码' --rabbitmq_host='IP地址' --rabbitmq_port='5672' --rabbitmq_exchange='maxwell_exchange' --rabbitmq_exchange_type='fanout' --rabbitmq_exchange_durable='true' --filter='exclude: *.*, include: blog.tb_article.article_title = *, include: blog.tb_article.article_content = *, include: blog.tb_article.is_delete = *, include: blog.tb_article.status = *' //运行MaxWell

3.容器启动成功:

QQ截图20200629175647.png

4.常用的docker命令

1
2
3
4
5
6
7
8
9
docker pull xx       //下载镜像
docker rmi xx //删除镜像
docker run xx //运行容器
docker exec -it xx /bin/bash //进入容器
docker rm xx //删除容器
docker stop xx //停止容器
docker restart xx //重启容器
docker rename 原名 改后名 //更改容器别名
docker ps -a //查看所有状态的容器

5.防火墙端口命令

1
2
3
4
firewall-cmd --zone=public --add-port=XXXX/tcp --permanent    
firewall-cmd --reload 
firewall-cmd --zone=public --list-ports
firewall-cmd --state