这次配置以nacos的3.1.1版本作为样例
环境参考
Anolis 23.3GA
docker : latest
mysql : 8.4.9
VMvare 17
NaviCat
1.拉取镜像
docker pull 镜像的名字:版本号# 这里我拉取的镜像是我阿里云管理镜像的私库,因为我的docker加速源经常失效,所以我自己搞了一个私库,参考项目 GitHub - tech-shrimp/docker_image_pusher: 使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用 · GitHub
2.到nacos的github界面下载对应版本的zip压缩包
下面链接是包含所有tag的页面
发行作品 ·阿里巴巴/NACOS压缩包的内容包含这些
其中最重要的是里面的conf文件夹,为了待会的数据持久化进行挂载.
3.创建容器
这里采用的是 docker-compose.yml 来进行创建容器
这个是官方的属性配置列表链接,里面有很详细的属性配置说明,按需配置
nacos-docker/README_ZH.md at master · nacos-group/nacos-docker
3.x版本要求强制配置这三个配置属性
NACOS_AUTH_TOKEN=${your_nacos_auth_secret_token} NACOS_AUTH_IDENTITY_KEY=${your_nacos_server_identity_key} NACOS_AUTH_IDENTITY_VALUE=${your_nacos_server_identity_value}(1).创建/root/nacos文件夹,同时在其目录下创建子文件夹 logs和data,同时把刚才下载压缩包里的conf文件拖进来,效果如下
(2).配置数据库
[1].打开navicat,连接你的Mysql,然后创建数据库名字为 "nacos"
[2].将你下的压缩包里的mysql-schema.sql拖到数据库"nacos"中执行![]()
(3).在/root下创建一个docker-compose.yml文件,写入
nacos: image: #你拉取的nacos镜像 container_name: #nacos容器的名字 restart: always #是否重启 environment: MODE: standalone #这里以单机模式进行配置 SPRING_DATASOURCE_PLATFORM: mysql #单机能使用的数据库 NACOS_AUTH_ENABLE: "true" NACOS_AUTH_TOKEN: "这里是一串32位的base编码" #docker执行命令 "openssl rand -base64 32"可以生成随机的 NACOS_AUTH_IDENTITY_KEY: "认证key,随便写" NACOS_AUTH_IDENTITY_VALUE: "认证的密码,随便写" MYSQL_SERVICE_HOST: #你的数据库地址 MYSQL_SERVICE_PORT: #你的数据库端口 MYSQL_SERVICE_DB_NAME: #nacos要连接的数据库名字 MYSQL_SERVICE_USER: #数据库用户名 MYSQL_SERVICE_PASSWORD: #数据库用户密码(记得密码要用" "括起来) #这一部分是数据的挂载 volumes: - yourpath/nacos/conf:/home/nacos/conf - yourpath/nacos/logs:/home/nacos/logs - yourpath/nacos/data:/home/nacos/data ports: - "8848:8848" #服务器连接的端口 - "9848:9848" #微服务应用(如 Spring Cloud 应用)会通过这个端口与 Nacos 服务端进行通信,用于服务注册、配置拉取等核心操作 - "9849:9849" #Nacos 集群模式下,各个节点之间会通过这个端口进行数据同步,保证集群数据的一致性 - "8080:8080" #web界面的端口 networks: - #你的数据库在docker里的网络(4).进入/root/nacos/conf文件夹,修改 application.properties 配置文件
这是第一处需要改动的地方
#*************** Datasource Related Configurations ***************# ### nacos.plugin.datasource.log.enabled=true spring.sql.init.platform=mysql #这里要取消注释,初始化数据库为mysql ### Count of DB: db.num=1 #这里要取消注释,表示此时连接数据库数量 ### Connect URL of DB: db.url.0=jdbc:mysql://你的数据库的地址:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true #这里源文件没有allowPublicKeyRetrieval=true,要加上 db.user=#你的数据库用户名 db.password=#你的数据库用户名密码这是第二处需要改动的地方
### The default token (Base64 string): #nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg= nacos.core.auth.plugin.nacos.token.secret.key= #这里是你的 NACOS_AUTH_TOKEN,记得取消注释(5).执行命令
docker compose up此时等待容器创建完成
出现类似这个界面就代表部署并启动成功
4.防火墙开放端口
执行下面两条命令
#开放8080端口 sudo firewall-cmd --permanent --add-port=8080/tcp #开放8848端口 sudo firewall-cmd --permanent --add-port=8848/tcp #重载防火墙 sudo firewall-cmd --reload5.打开nacos web,看看有没有部署成功
你的虚拟机地址:8080/ #新版本路径 "/nacos" 变成了 "/"如有不对或者补充、好的建议,欢迎各位留言