最新版本组件的docker下载-nacos-Rabbitmq-redis-RocketMQ-java
1. nacos
# 拉取最新版 Nacos 镜像
docker pull nacos/nacos-server:latest
或者
docker pull nacos/nacos-server:v3.1.0
怎么生成NACOS_AUTH_TOKEN呢
NACOS_AUTH_TOKEN: Nacos 用于生成JWT Token的密钥,可以使用长度大于32字符的字符串,再经过Base64编码。
我们就去这个网站用一个大于32字符的子字符串,经过Base64编码就可以生成NACOS_AUTH_TOKEN

docker run --name my-nacos -e MODE=standalone -e NACOS_AUTH_TOKEN=cXdlcnR5dWlvcGFzZGZnaGprbHp4Y3Zibm1xd2VydHl1aQ== -e NACOS_AUTH_IDENTITY_KEY=ck -e NACOS_AUTH_IDENTITY_VALUE=123456 -p 8080:8080 -p 8848:8848 -p 9848:9848 -d nacos/nacos-server:latest
NACOS_AUTH_IDENTITY_KEY和NACOS_AUTH_IDENTITY_VALUE主要是用来身份验证的,一定程度上可以随便填

这样就启动成功了
然后是与mysql进行绑定
nacos配置mysql数据库
mysql-schema.sql在哪里能找到?
主要就是看官网
打开home/etc/conf
修改
application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://172.17.0.2:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
docker inspect mysql8.0
然后数据库Mysql的ip地址就是IPAddress,就是172.17.0.2
nacos是数据库

我们发现或者在docker run的时候,指定环境变量也是一样的道理
然后数据库还有进行初始化,就是要创建nacos数据库来存储nacos信息
从Nacos的conf目录下找到mysql-schema.sql(针对Nacos 2.x版本),并使用该SQL脚本在你的MySQL数据库中创建所需的表结构。

就是这个
然后重启nacos就成功了
我的初始化账户名和密码都是nacos
总而言之就是看官网
然后现在nacos最新版本就是
可以去maven仓库查询
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2023.0.3.3</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2023.0.3.2</version>
</dependency>
nacos最新版本就是2023年的,对应spring的版本只有3.3和3.2

spring:
cloud:
nacos:
discovery:
namespace: e2973b59-276b-4801-b904-8bad585dc8a7
server-addr: http://127.0.0.1:8848
config:
namespace: e2973b59-276b-4801-b904-8bad585dc8a7
server-addr: http://127.0.0.1:8848
file-extension: yml
import-check:
enabled: false # 禁用导入检查
config:
import: optional:nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension} # 添加这个配置
注意我们还要添加
import-check:
enabled: false # 禁用导入检查
config:
import: optional:nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension} # 添加这个配置
这两个配置
如果使用bootstrap.yml,就不用spring.config.import—》显式声明配置源
optional: - 表示如果配置中心不可用,应用仍然可以启动(不会因为连接失败而崩溃)
nacos: - 指定从 Nacos 配置中心加载配置
${spring.application.name}.${spring.cloud.nacos.config.file-extension} - 指定要加载的配置文件名(ourProject3.properties)
Spring Cloud Alibaba 在较新版本中增加了导入检查机制:
检查是否正确定义了 spring.config.import
如果没有定义,就会报错并阻止应用启动
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2025.0.0.0-preview</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2025.0.0.0-preview</version>
</dependency>
或者直接用最新版本
2. RabbitMQ
Rabbitmq官网
官方 management 标签镜像包含 Web 管理插件,是最常用的版本:
docker pull rabbitmq:management
若无需管理界面,可拉取基础镜像:
docker pull rabbitmq:latest
docker run -d --name my-rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
默认账户和密码是guest和guest
这个不用于数据库结合
3. redis
docker pull redis:latest
docker run --name my-redis -d -p 6379:6379 redis:latest --requirepass "123456"
123456是redis的密码
# 主节点(原命令不变,无需重新启动)
# docker run --name my-redis-master -d -p 6379:6379 redis:latest --requirepass "123456"
# 从节点1:补充 --masterauth 123456
docker run -d -p 6380:6379 --name my-redis-slave1 redis:latest redis-server --slaveof 172.17.0.1 6379 --masterauth 123456 --requirepass 123456
# 从节点2:和从节点1一致
docker run -d -p 6381:6379 --name my-redis-slave2 redis:latest redis-server --slaveof 172.17.0.1 6379 --masterauth 123456 --requirepass 123456
这个是主从节点的创建
4. Mysql
docker pull mysql:8.0

docker run -d --name my-mysql -p 3306:3306 -e "TZ=Asia/Shanghai" -e "MYSQL_ROOT_PASSWORD=123456" mysql:8.0
docker exec -it 容器id bash
mysql -u root -p123456
# 创建oj项⽬⽤⼾
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
#进入容器
docker exec -it my-mysql mysql -u root -p123456
-- 或允许任意 IP 访问mysql,允许任意ip连接mysql的root
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
5. RocketMQ
docker pull apache/rocketmq:5.3.3
RocketMQ涉及多个服务,需要多个容器,创建Docker网络方便容器之间的通信。
docker network create rocketmq
# Start NameServer
docker run -d --name rmqnamesrv -p 9876:9876 --network rocketmq apache/rocketmq:5.3.2 sh mqnamesrv
docker logs -f rmqnamesrv

显示最后一句话The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876就说明nameServer启动成功了
名称服务rmqnamesrv 器启动后,我们继续启动 Broker 和 Proxy。
# Start the Broker and Proxy
docker run -d --name rmqbroker --network rocketmq -p 10912:10912 -p 10911:10911 -p 10909:10909 -p 8080:8080 -p 8081:8081 -e "NAMESRV_ADDR=rmqnamesrv:9876" apache/rocketmq:5.3.2 sh mqbroker --enable-proxy
docker exec -it rmqbroker bash -c "tail -n 10 /home/rocketmq/logs/rocketmqlogs/proxy.log"

显示 The broker[broker-a, 172.19.0.3:10911] boot success. serializeType=JSON and name server is rmqnamesrv:9876说明brocker启动成功了
显示 Wed Oct 29 01:29:41 UTC 2025 rocketmq-proxy startup successfully说明proxy启动成功了
这样就可以了
在执行mqadmin命令之前,要正确配置 NAMESRV_ADDR 环境变量,不然会导致 mqadmin 命令无法找到 NameServer 地址。
export NAMESRV_ADDR=127.0.0.1:9876
./mqadmin updateTopic -t ck_TAH -c DefaultCluster
//或者
./mqadmin updateTopic -n 127.0.0.1:9876 -t ck_TAH -c DefaultCluster
6. java
apt-get update
apt install openjdk-17-jdk
更多推荐
所有评论(0)