使用 Docker 部署 Nacos 并配置 MySQL 数据源

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 使用 Docker 部署 Nacos 并配置 MySQL 数据源

前言

在安装 Nacos 之前,请确保你已经准备好了一个运行中的 MySQL 数据库。本教程将指导您如何使用 Docker 在单机模式下部署 Nacos,并将其数据持久化到 MySQL 中。

步骤一:拉取 Nacos 镜像

拉取最新版本的 Nacos Server 镜像,也可以指定特定版本:

docker pull nacos/nacos-server

如果你想拉取特定版本,例如 v2.2.0,则执行:

docker pull nacos/nacos-server:v2.2.0

步骤二:创建并挂载目录

在宿主机上创建两个目录用于日志和配置文件映射:

mkdir -p /mydata/nacos/logs/
mkdir -p /mydata/nacos/conf/

注意:这些目录将作为数据卷挂载到容器内部,使得我们可以在宿主机直接修改相关文件。

步骤三:临时启动并复制文件

  1. 启动一个临时的 Nacos 容器以便从容器内复制配置文件至宿主机:
docker run -d --name nacos-temp -p 8848:8848 nacos/nacos-server


  1. 将容器内的配置文件和日志文件复制到宿主机对应的目录:
docker cp nacos-temp:/home/nacos/logs/ /mydata/nacos/
docker cp nacos-temp:/home/nacos/conf/ /mydata/nacos/
  1. 关闭并移除临时容器:
docker rm -f nacos-temp

步骤四:在 MySQL 中创建 Nacos 所需表结构

在 MySQL 中新建数据库 nacos-config(或其他自定义名称),然后从 Nacos GitHub 仓库 中找到并执行创建表结构的 SQL 脚本。

步骤五:正式启动 Nacos 并设置环境变量

以下命令用于启动一个带有持久化配置且连接了 MySQL 数据库的 Nacos 容器:

docker run -d \
--name nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e DB_NUM=1 \
-e DB_URL_0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC \
-e DB_USER=root \
-e DB_PASSWORD=root \
-v /mydata/nacos/logs/:/home/nacos/logs \
-v /mydata/nacos/conf/:/home/nacos/conf \
--restart=always \
nacos/nacos-server

命令参数说明

  • -d 表示以守护进程模式运行容器。
  • -p 参数用于端口映射。
  • --privileged=true 提升容器权限。
  • -e 设置环境变量,包括 JVM 内存大小、运行模式以及 MySQL 数据库连接信息。
  • -v 挂载数据卷。

网络与防火墙设置

确保宿主机的防火墙规则允许访问 Nacos 相关端口(8848, 9848 和 9849)。对于 Linux 系统,可以使用以下命令:

firewall-cmd --permanent --add-port=8848/tcp
firewall-cmd --permanent --add-port=9848/tcp
firewall-cmd --permanent --add-port=9849/tcp
firewall-cmd --reload
systemctl restart docker # 重启 Docker 服务以确保新规则生效

配置文件修改

编辑宿主机上的 Nacos 配置文件以指向你的 MySQL 实例:

vim /mydata/nacos/conf/application.properties

更新如下配置项:

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root

验证配置是否正确映射到容器内:

docker exec -it nacos /bin/bash
cat /home/nacos/conf/application.properties
exit

访问 Nacos 控制台

当所有步骤完成后,现在可以通过浏览器访问 Nacos 控制台:

http://<ip>:8848/nacos/index.html

请将 <ip> 替换为实际服务器 IP 地址或本地回环地址 127.0.0.1

请注意,上述步骤基于截至撰写本文时的最佳实践,具体操作时,请参照最新的官方文档及 Docker 镜像标签进行调整。同时,务必检查挂载目录映射的正确性,确保应用配置能够成功写入容器。




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
77 1
|
25天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
77 1
|
30天前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
232 1
|
1月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
【10月更文挑战第1天】使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
54 3
|
1月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库如何设置忽略表名大小写?
【10月更文挑战第1天】使用Docker部署的MySQL数据库如何设置忽略表名大小写?
102 1
|
1月前
|
存储 关系型数据库 MySQL
【MySQL精装典藏版】MySQL的安装与部署
【MySQL精装典藏版】MySQL的安装与部署
49 0
|
5天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
22 1
Nacos配置中心
|
1天前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
|
4天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
14 4
|
4天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
16 3
下一篇
无影云桌面