docker安装单机nacos、rocketmq、reids、xxl-job、minio、elasticsearch、kibana

news2025/1/20 1:50:48

启动容器报错
在这里插入图片描述
直接删除那个name后边的就可以

安装nacos

首先需要拉取对应的镜像文件:docker pull nacos/nacos-server

挂载目录:

  mkdir -p /mydata/nacos/logs/                      #新建logs目录
  mkdir -p /mydata/nacos/init.d/          
  vim /mydata/nacos/init.d/custom.properties        #修改配置文件

修改custom.properties配置文件:

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_config? characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true 
db.user=root #用户名
db.password=root #密码
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true

启动nacos容器:

docker  run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server

浏览器登录:ip:8848/nacos 账号:nacos 密码:nacos

设置nacos自启动:docker update --restart=always nacos

安装rocketmq

拉取镜像:docker pull rocketmqinc/rocketmq

创建一个数据目录:

mkdir -p /docker/rocketmq/nameserver/logs /docker/rocketmq/nameserver/store

启动容器:

docker run -d --restart=always --name rmqnamesrv --privileged=true -p 9876:9876  -v /docker/rocketmq/nameserver/logs:/root/logs -v /docker/rocketmq/nameserver/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv

参数 说明

-d	以守护进程的方式启动
--restart=always	docker重启时候容器自动重启
--name rmqnamesrv	把容器的名字设置为rmqnamesrv
-p 9876:9876	把容器内的端口9876挂载到宿主机9876上面
-v /docker/rocketmq/nameserver/logs:/root/logs	目录挂载
-v /docker/rocketmq/nameserver/store	目录挂载
rmqnamesrv	容器的名字
-e “MAX_POSSIBLE_HEAP=100000000”	设置容器的最大堆内存为100000000
rocketmqinc/rocketmq	使用的镜像名称
sh mqnamesrv	启动namesrv服务

安装broker

创建3个文件目录

mkdir -p  /docker/rocketmq/broker/logs /docker/rocketmq/broker/store /docker/rocketmq/conf

创建broker.conf配置文件 touch /docker/rocketmq/conf/broker.conf,目录放哪里都行

文件内容如下:

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 主机IP

启动broker:

 docker run -d --restart=always --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 --privileged=true -v /docker/rocketmq/broker/logs:/root/logs -v /docker/rocketmq/broker/store:/root/store -v /docker/rocketmq/conf/broker.conf:/opt/docker/rocketmq/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/docker/rocketmq/broker.conf

参数 说明

-d	以守护进程的方式启动
--restart=always	docker重启时候容器自动重启
--name rmqbroker	把容器的名字设置为rmqbroker
--link rmqnamesrv:namesrv	和rmqnamesrv容器通信
-p 9876:9876	把容器内的端口9876挂载到宿主机9876上面
-p 10909:10909	把容器的vip通道端口挂载到宿主机
-e “NAMESRV_ADDR=namesrv:9876”	指定namesrv的地址为本机namesrv的ip地址:9876
-e “MAX_POSSIBLE_HEAP=200000000” rocketmqinc/rocketmq sh mqbroker	指定broker服务的最大堆内存
rocketmqinc/rocketmq	使用的镜像名称
sh mqbroker -c /opt/docker/rocketmq/broker.conf	指定配置文件启动broker节点

安装控制台

拉取镜像:docker pull pangliang/rocketmq-console-ng

启动:

docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr= ip地址:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'" -v /etc/localtime:/etc/localtime -p 8080:8080 pangliang/rocketmq-console-ng

访问:ip:8080

安装redis

拉取redis镜像:

#不指定版本号,默认拉取最新版的 redis docker pull redis
#指定的版本号 docker pull redis:5.0.7 

创建目录存放redis.conf文件

mkdir -p /opt/docker/redis/conf
mkdir -p /opt/docker/redis/data
cd /opt/docker/redis/conf

下载redis.conf文件,也可以自己上传:wget http://download.redis.io/redis-stable/redis.conf

安装wget命令:yum install wget,有此命令可跳过

文件授权chmod 777 redis.conf

修改默认配置信息 vi /opt/docker/redis/redis.conf

bind 127.0.0.1		注释掉,解除本地连接限制

daemonize yes 默认no 为不守护进程模式;此属性设置yes与启动命令-d两者会冲突,两者选其一

设置密码(建议设置,不设置有风险)requirepass  密码

持久化(可选)	appendonly yes

docker启动redis命令

docker run -p 6379:6379 --name redis -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf  -v /opt/docker/redis/data:/data --restart=always -d redis redis-server /etc/redis/redis.conf --appendonly yes 
命令分析

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载文件或目录 :前表示主机部分,:后表示容器部分。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf
以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
-–appendonly yes 开启redis 持久化
-–requirepass 123456 设置密码为123456
--restart=always	docker重启时候容器自动重启

检查redis容器是否在运行 docker ps

使用连接工具测试

安装xxl-job

配合数据库使用,需要先安装mysql,安装好的就可以按如下操作配置xxl_job库

创建文件 vi tables_xxl_job.sql

找到对应xxl版本的建库sql,地址:xxl_job的sql脚本地址
在这里插入图片描述
复制sql语句到刚刚编辑的文件中,保存退出

将文件上传的mysql容器里面:docker cp tables_xxl_job.sql mysql:tables_xxl_job.sql mysql 是mysql容器的名字

登录mysql:docker exec -it 152267cc6abf /bin/sh 152267cc6abf 这个是mysql对应的容器id

在#号后面直接输入:mysql -uroot -p -u后面是账号

在enter password 后面输入密码不显示,输入完直接回车即可

在这里插入图片描述
登入mysql后面输入导入sql文件命令:source tables_xxl_job.sql

导入之后数据库就能看到xxl_job这个库,然后退出mysql容器:exit 命令

拉取xxl_job镜像:docker pull xuxueli/xxl-job-admin:2.3.1

运行

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.1.128:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=root" \
-p 8888:8080 -v /tmp:/data/applogs \
--name xxl-job-admin --restart=always --privileged=true -d xuxueli/xxl-job-admin:2.3.1

访问地址:http://192.168.1.128:8888/xxl-job-admin/toLogin 账号/密码:admin/123456

安装minio

下载minio的镜像:docker pull minio/minio

启动容器:

docker run -p 9000:9000 -p 9090:9090 \
 --name minio \
 -d --restart=always \
 -e "MINIO_ACCESS_KEY=minioadmin" \
 -e "MINIO_SECRET_KEY=minioadmin" \
 -v /mydata/minio/data:/data \
 minio/minio server \
 /data --console-address ":9090" -address ":9000"

9090端口指的是minio的客户端端口;9000端口是minio的服务端端口

虽然设置9090,但是在访问9000的时候,会自动跳到9090。程序连接minio时,就是这个端口连接

访问地址:http://192.168.1.128:9090 账号密码 minioadmin/minioadmin

安装elasticsearch

拉取镜像:docker pull elasticsearch:7.12.1 注意版本稳定性,版本稳定性很重要

创建Elasticsearch配置文件夹、数据文件夹、插件文件夹(如:ik)

mkdir -p /usr/local/data-docker/elasticsearch/config
mkdir -p /usr/local/data-docker/elasticsearch/data
mkdir -p /usr/local/data-docker/elasticsearch/plugins

目的将CentOS本地的文件夹映射到Elasticsearch容器,以实现容器数据的持久化到CentOS本地,以及通过CentOS本地文件夹内容的修改同步到容器

创建并写入elasticsearch.yml配置,注:http.host: 0.0.0.0 冒号后有一空格

echo "http.host: 0.0.0.0">>/usr/local/data-docker/elasticsearch/config/elasticsearch.yml

文件夹赋权 chmod -R 777 elasticsearch/ 要进入到文件夹位置

启动容器:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -d --restart=always -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /usr/local/data-docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/data-docker/elasticsearch/data:/usr/share/elasticsearch/data -v /usr/local/data-docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.12.1

访问地址:192.168.1.128:9200

安装kibana

拉取镜像: docker pull kibana:7.12.1 与elasticsearch版本保持一致

创建目录、配置文件

mkdir -p /usr/local/kibana/config
vi /usr/local/kibana/config/kibana.yml

配置文件内容

#设置Kibana映射端口
server.port: 5601
#设置网关地址
server.host: "0.0.0.0"
#设置Kibana实例对外展示的名称
server.name: "kibana"
#设置ES集群地址
elasticsearch.hosts: "http://192.168.1.128:9200"
#设置请求超时时长
elasticsearch.requestTimeout: 120000
#设置页面语言
i18n.locale: "zh-CN"

启动容器:
docker run -d -p 5601:5601 -v /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml --restart=always --name kibana kibana:7.12.1

数据包转发,执行命令vim /usr/lib/sysctl.d/50-default.conf

末尾添加net.ipv4.ip_forward = 1

重启networksystemctl restart network

访问地址:192.168.1.128:5601

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 Kotlin 的 Opt-in (选择加入)功能注解API提示当前非稳定API

前言 之前在给公司项目封装库的时候,领导告诉我封装的漂亮一点,等以后公司发展起来了可能需要把这个库提供给第三方接入使用。 此时,就有这么一个问题:某些功能函数使用条件比较苛刻,直接使用可能会出现意想不到的后…

Mock.js 的语法规范学习

Mock.js 有一套完整的语法规范,可以好好学学。 Mock.js 的语法规范包括两部分: 数据模板定义规范(Data Template Definition,DTD) 数据占位符定义规范(Data Placeholder Definition,DPD) 数…

【mediasoup】12: ChannelRequest控制指令

rust 是把worker 当做lib 调用的。node是当做一个进程每一个ChannelRequest 就是一个外部发给worker的控制指令worker要负责处理。控制指令的处理实际是worker做的,worker可能立即执行,可能交给对应的handler去处理 worker根据指令id 来处理 处理完毕后才发消息ack 给控制侧 …

# Spring Boot 中如何使用 Spring Cloud Sleuth 来实现分布式跟踪?

Spring Boot 中如何使用 Spring Cloud Sleuth 来实现分布式跟踪? 在微服务架构中,通常会有多个服务相互协作,为了方便排查问题,我们需要对服务之间的调用进行跟踪。Spring Cloud Sleuth 是 Spring Cloud 生态中的分布式跟踪解决方…

charles使用

charles​ 一、概念​ charles是一款非常优秀的抓包工具,全平台支持,在mac,windows,linux上都可以使用,既可以抓 取web端的包,也可以抓app端的包。 ​ charles主要的功能包括如下几点: ​ 截取…

Linux网络服务:SSH远程访问及控制2

目录 一、理论 1.构建密钥对验证的SSH体系 2.TCP Wrappers访问控制 二、实验 1.ecdsa免密连接 2.rsa免密连接 一、理论 1.构建密钥对验证的SSH体系 (1)免密连接原理 ① 手动添加客户端的公钥到服务端 ② 服务端收到客户端的公钥后使用客户端公钥…

C++——引用

引用的概念 初步理解:引用相当于给变量取了一个别名,它和引用的变量共用同一块空间。 就好比孙悟空有很多外号,例如孙行者,齐天大圣,斗战胜佛,但是它们所指都是孙悟空。同样的,如果齐天大圣大…

如何在 Ubuntu 22.04 上安装 Python Pip?

Python Pip 是 Python 的包管理器,它允许您轻松地安装和管理 Python 包和库。在 Ubuntu 22.04 上安装 Python Pip 是非常简单的。 本文将详细介绍如何在 Ubuntu 22.04 上安装 Python Pip,并为您提供逐步指南。 步骤 1:更新软件包列表 在安装…

C Primer Plus第八章编程练习答案

学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出! 1.设计一个程序,统计在读到…

Yum使用方法

1.什么是软件包 在Linux下安装软件,有三种方法: 通过对源代码进行封装,并进行编译,得到可执行程序。rpm安装,rpm安装软件需要各种指令,对于小白来说不友好,容易出错。yum安装,解决…

六、Docker仓库之Harbor搭建(三)

Harbor搭建 一、Harbor简介 1.Harbor介绍 Harbor是一个用于存储Docker镜像的企业级镜像服务器,通过添加一些企业必需的功能特性,如安全、标识和管理等,大大扩展其功能。作为一个企业级私有镜像服务器,Harbor提供了更好的性能和安…

Modern CSV:大型 CSV 文件编辑器/查看器 Crack

Modern CSV用于快速查看大型 CSV 文件 适用于 Windows、Mac 和 Linux 的复杂 CSV 编辑器/查看器 被使用 电子商务运营商。数据科学家。会计师。 IT 专业人员。学生。医学研究人员。数字营销人员。生物学家。工程师。 现代 CSV 是适用于 Windows、Mac 和 Linux 的功能强大的表格…

SSM 如何使用 TCC 机制实现分布式事务?

SSM 如何使用 TCC 机制实现分布式事务? 分布式事务是现代分布式系统中必不可少的一部分,而 TCC 机制(Try-Confirm-Cancel)是一种常用的分布式事务处理方式。在 SSM 框架中,我们可以使用 TCC 机制来管理分布式事务。本…

RabbitMQ系列-概念及安装

1. 消息队列 消息队列是指利用队列这种数据结构进行消息发送、缓存、接收,使得进程间能相互通信,是点对点的通信 而消息代理是对消息队列的扩展,支持对消息的路由,是发布-订阅模式的通信,消息的发送者并不清楚消息的…

Spring源码解析

Idea导入Spring源码 下载 下载gradle 因为Spring源码里没有使用Maven依赖,而是使用gradle依赖,所以我们需要在本地下载安装并配置gradle环境。注意,这里下载安装的gradle版本应与Spring源码中的gradle版本对应。这里推荐下载我的&#xff…

Linux网络服务:部署YUM仓库与NFS服务

目录 一、理论 1.部署YUM仓库服务 2.NFS共享存储服务 二、实验 1.通过httpd服务建立yum仓库 2.通过vsftpd服务建立yum仓库 3.搭建NFS实现2台或3台服务器共享一个目录 一、理论 1.部署YUM仓库服务 (1) YUM简介 YUM的前身是YUP,借助于YUM软件仓库&#xff0c…

关于原型链

1-__proto__([[Prototype]])和prototype 每个对象都有一个隐式原型,这个隐式原型可以通过 obj.__proto__ Object.getPrototypeOf(obj)这两种方式获取; 我们都知道对象是通过构造函数构造的,new关键字构造的, 构造函数上有一个显…

如何在华为OD机试中获得满分?Java实现【最佳对手】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 游戏里面,队伍通过匹配…

native层函数没有导出时,如何获得相应函数地址?

前言 每次App重新运行后native函数加载的绝对地址是会变化的,唯一不变的是函数相对于基地址的偏移,因此我们可以在获取模块的基地址后加上固定的偏移地址获取相应函数的地址,Frida中也正好提供了这种方式:先通过Module.findBaseA…

SQL教程1

SQL 是用于访问和处理数据库的标准的计算机语言。 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。 SQL 简介 SQL (Structured Query Language:结构化…