如何使用 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

    2.将容器内的配置文件和日志文件复制到宿主机对应的目录:

docker cp nacos-temp:/home/nacos/logs/ /mydata/nacos/
docker cp nacos-temp:/home/nacos/conf/ /mydata/nacos/

     3.关闭并移除临时容器:

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

更新如下配置项:

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

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 镜像标签进行调整。同时,务必检查挂载目录映射的正确性,确保应用配置能够成功写入容器。

### 如何在 Docker部署 Nacos 配置 MySQL #### 准备工作 为了成功部署 NacosMySQL,在开始前需确认已安装 DockerDocker Compose。另外,准备一个正在运行的 MySQL 数据库实例。 #### 拉取 Nacos 镜像 通过执行命令 `docker pull nacos/nacos-server` 来获取官方发布的最新版本镜像文件[^1]。 #### 创建 MySQL 数据库 对于想要使用外部 MySQL 实例的情况,先登录到 MySQL 客户端创建一个新的数据库用于存储 Nacos 的元数据: ```sql CREATE DATABASE IF NOT EXISTS nacos_config; USE nacos_config; SOURCE /path/to/mysql-schema.sql; ``` 上述 SQL 脚本会初始化必要的表结构来支持 Nacos 运作所需的数据模型[^2]。 #### 编写 Docker Compose 文件 编写或修改现有的 `docker-compose.yml` 文件以定义服务间的依赖关系和服务本身的参数设置。下面是一个简单的例子展示如何指定连接至本地或其他主机上的 MySQL 服务器的方法: ```yaml version: '3' services: nacos: image: nacos/nacos-server container_name: nacos environment: - MODE=standalone - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=localhost - MYSQL_SERVICE_PORT=3306 - MYSQL_SERVICE_DB_NAME=nacos_config - MYSQL_SERVICE_USER=root - MYSQL_SERVICE_PASSWORD=yourpasswordhere ports: - "8848:8848" ``` 此 YAML 片段设置了环境变量以便让 Nacos 应用程序能够找到对应的 MySQL 数据源位置以及认证信息[^3]。 #### 启动容器 完成以上准备工作之后,可以通过如下指令启动所有关联的服务: ```bash docker-compose up -d ``` 这将会以后台守护进程的方式启动所有的容器,使它们按照所设定好的网络拓扑相互协作运作起来。 #### 测试访问 最后一步就是验证整个系统的正常运转情况了。打开浏览器输入 http://localhost:8848/nacos 即可进入管理界面查看状态是否一切良好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nuhao_

谢谢你打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值