当前位置: 首页 > news >正文

docker安装中间件

docker安装

centorOS安装docker
1. 删除
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2. 安装docker的yum库
yum install -y yum-utils
3. 配置docker的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 安装docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5. 查看docker版本
docker -v
6. 开机自启
systemctl enable docker
systemctl start docker
7. 配置镜像
# 创建目录
mkdir -p /etc/docker# 进入上面那个目录后再依次执行下面的命令
# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.fxxk.dedyn.io","https://dockerproxy.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com"]
}
EOF# 重新加载配置
systemctl daemon-reload# 重启Docker
systemctl restart docker

1. 安装Nginx

nginx documentation

1. 拉取镜像
docker pull nginx:1.19.4
2. 运行简单 nginx 容器
docker run -d -p 80:80 --name nginx nginx:1.19.4
3. 创建Nginx挂载目录
mkdir -p /docker/nginx
4. 复制 Nginx 配置文件至宿主机
# 复制名称为 nginx 容器中 /etc/nginx/nginx.conf 文件夹到宿主机的 /docker/nginx 路径下
docker cp nginx:/etc/nginx/nginx.conf /docker/nginx
# 复制名称为 nginx 容器中 /etc/nginx/conf.d 文件到宿主机的 /docker/nginx 路径下
docker cp nginx:/etc/nginx/conf.d /docker/nginx
5. 修改 Nginx的配置文件,添加反向代理
cd /docker/nginx/conf.d
6. 编辑配置文件
vim default.conf

location 节点中,添加反向代理配置如下:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 反向代理到后台 Web 服务
proxy_pass http://172.17.0.1:8080;

前面 3 行配置都是设置一些请求头,主要是最后一行,这一行配置指定了反向代理的目标地址。它使用 proxy_pass 指令将过来的请求转发给后端服务器,这里的目标地址是 http://127.0.0.1:8080

在这里插入图片描述

7. 删除之前启动的nginx,并重新启动nginx容器
docker run -d -p 80:80 --name nginx -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/conf.d:/etc/nginx/conf.d -v /docker/nginx/logs:/var/log/nginx nginx:1.19.4 
docker run -d -p 80:80 --name nginx -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/conf.d:/etc/nginx/conf.d -v /docker/nginx/logs:/var/log/nginx -v /docker/nginx/html:/usr/share/nginx/html nginx:1.19.4 

2. 安装mysql

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v ./mysql/config:/etc/mysql -v ./mysql/data:/var/lib/mysql -v ./mysql/mysql-files:/var/lib/mysql-files mysql:8.0.27

3. 安装redis

docker run -p 6379:6379 --name redis --sysctl net.core.somaxconn=1024 -v ./docker/redis/conf/redis.conf:/etc/redis/redis.conf -v ./docker/redis/data:/data -v ./docker/redis/modules:/etc/redis/modules -d redis:7.2.3 redis-server /etc/redis/redis.conf --appendonly yes 

4. 安装nacos

1. 拉取镜像
docker pull nacos/nacos-server:v2.2.3
2. 运行容器
docker run -d --name nacos --env MODE=standalone -p 8848:8848 -p 9848:9848 nacos/nacos-server:v2.2.3

docker run: 启动容器

-d: docker 后台运行

-name: 为容器创建名字

–env: 设置容器内的环境变量

-p 8848:8848: 将宿主机的8848端口映射到容器内的8848端口。Nacos的默认服务器端口是8848,外部访问时需要通过该端口

-p 9848:9848: 将宿主机的9848端口映射到容器内的9848端口。这个端口通常用于 Nacos 的监控和管理。

nacos/nacos-server.2.3:指定要运行的镜像和版本。

访问控制台,浏览器访问地址:http://localhost:8848/nacos

3. 复制配置文件、数据文件到宿主机
docker cp nacos:/home/nacos/conf ./docker/nacos
docker cp nacos:/home/nacos/data ./docker/nacos
4. 删除刚创建的 Nacos 容器
# 删除 nacos 容器
docker rm -f nacos
5. 重新跑一个容器
docker run -d --name nacos --privileged -e MODE=standalone -e JVM_XMX=300m -e JVM_XMS=300m -p 8848:8848 -p 9848:9848  -v ./docker/nacos/conf:/home/nacos/conf -v ./docker/nacos/data:/home/nacos/data -v ./docker/nacos/logs:/home/nacos/logs nacos/nacos-server:v2.2.3

–privileged: 使容器以特权模式运行,给予容器更多的权限,这通常用于需要更高权限的操作。

-e JVM_XMX=300m: 设置环境变量 JVM_XMX,指定 JVM 最大堆内存为 300MB。

-e JVM_XMS=300m: 设置环境变量 JVM_XMS,指定 JVM 初始堆内存为 300MB。

-v: 环境变量配置,宿主机与容器关于配置文件、数据、日志进行目录挂载

5. 安装minio

1. 下载镜像
docker pull minio:RELEASE.2023-09-30T07-02-29Z
2. 创建挂载目录

/docker/ 创建 minio 文件夹,用户存放容器启动后,挂载配置文件和持久化数据

docker run -d \-p 9000:9000 \-p 9090:9090 \--name minio \-v /root/docker/minio/data:/data \-e "MINIO_ROOT_USER=xiaohongshu" \-e "MINIO_ROOT_PASSWORD=xiaohongshu" \minio:RELEASE.2023-09-30T07-02-29Z server /data --console-address ":9090"
docker run -d -p 9000:9000 -p 9090:9090 --name minio -v /root/docker/minio/data:/data -e "MINIO_ROOT_USER=xiaohongshu" -e "MINIO_ROOT_PASSWORD=xiaohongshu" minio/minio:RELEASE.2023-09-30T07-02-29Z server /data --console-address ":9090"
  • -p 9000:9000: 将宿主机的 9000 端口映射到容器的 9000 端口。Minio 默认的 HTTP API 端口是 9000。
  • -p 9090:9090: 将宿主机的 9090 端口映射到容器的 9090 端口。这是 Minio 的 Web 控制台的端口。
  • server /data --console-address ":9090": 启动 MinIO 服务器,并将数据存储在容器内的/data目录。--console-address ":9090"表示 Minio 的Web 控制台将在容器的 9090 端口上运行。

6. 安装Cassandra

1. 下载镜像
docker pull cassandra:latest
2. 创建挂载目录

/docker/ 创建 cassandra 文件夹,用户存放容器启动后,挂载配置文件和持久化数据

3. 运行容器
docker run -d --name cassandra -p 9042:9042 -v /root/docker/cassandra/data:/var/lib/cassandra cassandra:latest

7. 安装zookeeper

1. 下载镜像
docker pull zookeeper:3.5.6
2. 创建挂载目录

/docker/ 创建 zookeeper 文件夹,用户存放容器启动后,挂载配置文件和持久化数据

3. 运行容器
docker run -d --name zookeeper -p 2181:2181 -e TZ="Asia/Shanghai" -v /root/docker/zookeeper:/data -v /root/docker/zookeeper/conf:/conf zookeeper:3.5.6
进入 Zookeeper
docker exec -it zookeeper bash
命令行交互
./bin/zkCli.sh

8. 安装rocketmq

需要修改

docker run -d --network rocketmq --privileged=true --name rocketmq-namesrv -p 9876:9876 -v ./docker/rocketmq/namesrv/logs:/home/rocketmq/logs -v ./docker/rocketmq/namesrv/bin/runserver.sh:/home/rocketmq/rocketmq-5.3.1/bin/runserver.sh apache/rocketmq:5.3.1 sh mqnamesrv
# 复制容器中的启动脚本,到宿主机中
docker cp rocketmq-broker:/home/rocketmq/rocketmq-5.3.1/bin/runbroker.sh ./docker/rocketmq/broker/bin
docker run -d --network rocketmq --name rocketmq-broker --privileged=true -p 10912:10912 -p 10911:10911 -p 10909:10909 -v ./docker/rocketmq/broker/logs:/home/rocketmq/logs/rocketmqlogs -v ./docker/rocketmq/broker/store:/home/rocketmq/store -v ./docker/rocketmq/broker/config/broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf -v ./docker/rocketmq/broker/bin/runbroker.sh:/home/rocketmq/rocketmq-5.3.1/bin/runbroker.sh -e "NAMESRV_ADDR=rocketmq-namesrv:9876" apache/rocketmq:5.3.1 sh mqbroker --enable-proxy -c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf

9. 安装Elasticsearch

1. 下载镜像
docker pull elasticsearch:7.3.0
2. 准备挂在文件夹

./docker/ 创建 elasticsearch 文件夹,用于将容器内部需要持久化的相关文件挂载在宿主机上。

3. 运行容器
docker run -d --name es7 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" elasticsearch:7.3.0
  • -p 9200:9200 -p 9300:9300:端口映射,将容器内的端口暴露到主机上:
    • 9200:9200:将容器内的 9200 端口(Elasticsearch 的 REST API 接口)映射到主机的 9200 端口,供外部使用。
    • 9300:9300:将容器内的 9300 端口(Elasticsearch 的内部通信端口,用于节点间通信)映射到主机的 9300 端口。
  • -e "discovery.type=single-node":通过环境变量设置 Elasticsearch 以 单节点模式 运行:
    • 作用:避免集群模式下的主节点选举。
    • 场景:适用于开发、测试环境,不需要集群功能。
  • -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m":设置 JVM 内存参数:
    • -Xms1024m:设置 JVM 的初始堆内存为 1024MB。
    • -Xmx1024m:设置 JVM 的最大堆内存为 1024MB。
    • 作用:确保 Elasticsearch 启动时使用 1GB 固定堆内存(建议与物理内存配置匹配,以提高性能)。
4. 复制需要挂载数据卷
docker cp es7:/usr/share/elasticsearch/config ./docker/elasticsearch
docker cp es7:/usr/share/elasticsearch/data ./docker/elasticsearch
docker cp es7:/usr/share/elasticsearch/plugins ./docker/elasticsearch
5. 修改配置文件
cluster.name: "xiaohongshu-cluster"
network.host: 0.0.0.0
# 跨域相关
http.cors.allow-origin: "*"
http.cors.enabled: true
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
  • 修改集群名称为 "xiaohongshu-cluster"
  • 添加跨域配置
6. 删除启动的容器并重新运行一个
docker rm -f es7

重新运行

docker run -d --name es7 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" -v ./docker/elasticsearch/config:/usr/share/elasticsearch/config -v ./docker/elasticsearch/data:/usr/share/elasticsearch/data -v ./docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v ./docker/elasticsearch/logs:/usr/share/elasticsearch/logs elasticsearch:7.3.0

浏览器访问地址:http://localhost:9200/ ,确保启动成功。

  • 对配置的log文件权限进行修改
7.安装可视化工具

elasticsearch-head 是一个开源的 Web 前端工具,用于 管理和可视化 Elasticsearch 集群

官方地址: https://github.com/mobz/elasticsearch-head

拉取镜像
docker pull mobz/elasticsearch-head:5-alpine
运行容器
docker run -d --name es-head -p 9100:9100 mobz/elasticsearch-head:5-alpine
访问控制台

浏览器访问地址:http://localhost:9100/

8. 安装Ik插件(分词器)
进入es7容器内
docker exec -it es7 /bin/sh
执行如下命令,并退出容器
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.3.0

然后,执行 docker cp 命令,将已安装的 ik 插件相关文件,复制到宿主机中,防止丢失:

docker cp es7:/usr/share/elasticsearch/plugins/analysis-ik ./docker/elasticsearch/plugins
docker cp es7:/usr/share/elasticsearch/config/analysis-ik ./docker/elasticsearch/config

重启 es7 容器

docker restart es7
ik分词模式

ik 分词器提供了如下两种中文分词模式:

  • ik_max_word:使用细粒度分词,适合索引时使用;
  • ik_smart:使用智能分词,适合查询时使用;

10. 安装Kibana

下载镜像
docker pull kibana:7.3.0

注意:Kibana 的版本号需要保持和 es 一样,防止有兼容性问题。

运行容器
docker run -d --name kibana -p 5601:5601 kibana:7.3.0
准备数据挂载文件夹

Kibana 容器中的配置文件夹,复制到宿主机的 ./docker/kibana 文件夹下

docker cp kibana:/usr/share/kibana/config ./docker/kibana
编辑配置文件
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.17.0.1:9200" ] # 修改为宿主机 IP 地址
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN" # 设置使用中文
  • elasticsearch.hosts : 因为 Kibana 需要连接 es, 这里将 IP 地址修改为 172.17.0.1 , 方便访问到宿主机的 9200 端口;
  • 添加 i18n.locale: "zh-CN" 配置,以将 Kibana 设置为中文模式;
删除旧容器,运行新的
docker rm -f kibana

前提开着es

docker run -d --name kibana -p 5601:5601 -v ./docker/kibana/config:/usr/share/kibana/config kibana:7.3.0

查看日志

docker logs -f kibana
访问控制台

浏览器访问地址 localhost:5601 ,即可登录 Kibana 控制台:

export JAVA_HOME=/usr/local/jdk1.8.0_341
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
http://www.dtcms.com/a/515573.html

相关文章:

  • 系统架构设计师备考第48天——机器人边缘计算
  • 门头沟高端网站建设阿里云服务器win系统建站教程
  • ui设计培训机构哪个比较好cpu优化软件
  • 计算机运算中的上溢、下溢是什么?
  • 别再滥用 new/delete
  • 自己做网站的视频做网站不实名认证可以吗
  • Vertical Semiconductor融资1100万美元
  • 坐标系旋转(四元数 + 欧拉角 + 轴角表示 +旋转矩阵)
  • 发刊词:开启你的高效决策之旅(专栏目录)
  • D触发器学习
  • 汶上云速网站建设wordpress多域名支持
  • C++(23):contains检查字符串是否包含子字符串
  • 23.UE-游戏逆向-寻找骨骼坐标
  • Python 图片转 PDF 详解:单张、多张及多图片格式转换
  • 深圳展示型网站建设佛山seo优化代理
  • AI研究-110 DeepSeek-OCR 原理剖析|上下文光学压缩、Gundam 动态分辨率与并发预期 附代码
  • Easyx图形库应用(mcu+lua vs plc+st)
  • 【计算机网络笔记】第一章 计算机网络导论
  • AI搜索驱动的品牌传播变革:品牌如何在“被搜索”转向“被理解”的浪潮中重构增长力
  • 秦皇岛网站建设哪家好医疗软件公司排名
  • 将 Flask 应用迁移到 AWS Lambda:服务监控电话告警系统实战
  • PyTorch入门
  • Redis的Hash数据结构底层实现
  • AWS Lambda 预置并发配置实战分析
  • Biu懂AI:使用LangChain将Astra MCP接入LLM
  • 做租号玩网站赚钱吗wordpress tag标签
  • 安全补丁还是自造DDoS?微软更新导致关键企业功能瘫痪
  • TorchRL 安装记录(亲测有效)
  • 网站建设教程资源wordpress有插件怎么用
  • 网站建设的项目描述银川微信网站