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本身需要后台运行,而这个配置选项也是以守护进程启动,两者会冲突
-p 6379:6379: 第一个端口是宿主机端口(服务器端口),第二个端口是容器端口(容器是一个个沙箱外部不不能访问的),将容器的6379端口映射到宿主机的6379端口上,这样可以通过访问宿主机6379来访问redis;
-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文件时候就不用进入到容器内部去修改了
-v /home/docker/redis/data:/data : 挂载持久化文件 /home/docker/redis/data是宿主机中持久化文件的位置,/data是容器中持久化文件的位置
-d: 后台启动
redis.conf文件中的一些配置:
1 2 3 4 5 6 bind 0.0.0.0 daemonize yes requirepass 123321
Redis的其它常见配置:
1 2 3 4 5 6 7 8 9 10 port 6379 dir . databases 1 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创建索引
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
查看索引结构
如图所示则创建成功
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.容器启动成功:
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