1. nacos

# 拉取最新版 Nacos 镜像
docker pull nacos/nacos-server:latest

或者

docker pull nacos/nacos-server:v3.1.0

Nacos Docker 快速开始

怎么生成NACOS_AUTH_TOKEN呢

Base64 在线编码解码

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仓库查询

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>

spring官网

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
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐