@[toc]
概要
本教程将指导您如何在 Windows 11 上使用 Docker Desktop 部署 Nacos 2.4.3,并配置 MySQL 5.7 作为数据库。
前期准备
- Docker Desktop:确保已经安装并配置好 Docker Desktop。
- MySQL 5.7:使用 MySQL 5.7 作为 Nacos 的数据库。
开始安装
- 拉取 Nacos 镜像 从 Docker 仓库拉取 Nacos 2.4.3 镜像:
docker pull nacos/nacos-server:v2.4.3
2. 启动 Nacos 容器 在 Windows 终端(如 CMD 或 PowerShell)中运行以下命令,启动 Nacos 容器:
docker run --name nacos -d -p 8848:8848 --network mynetwork --restart=always -e MODE=standalone -e MYSQL_SERVICE_HOST=mysql -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=root -v D:\nacos\logs:/home/nacos/logs -v D:\nacos\init.d\custom.properties:/home/nacos/init.d/custom.properties -v D:\nacos\data:/home/nacos/data nacos/nacos-server:v2.4.3
参数说明:
- --name nacos: 给容器命名为 nacos。
- -d: 以后台方式运行容器。
- -p 8848:8848: 映射主机的 8848 端口到容器内的 8848 端口(Nacos 的默认端口)。
- --network mynetwork: 指定容器的网络为 mynetwork,确保 Nacos 能访问 MySQL。
- --restart=always: 容器崩溃或 Docker 重启时自动重启容器。
- -e MODE=standalone: 设置 Nacos 以单机模式启动。
- -e MYSQL_SERVICE_HOST=mysql: 设置 MySQL 服务的主机名(若 MySQL 在另一个 Docker 容器中,确保网络互通)。
- -e MYSQL_SERVICE_DB_NAME=nacos: 设置 Nacos 使用的数据库名。
- -e MYSQL_SERVICE_PORT=3306: 设置 MySQL 的端口号,默认是 3306。
- -e MYSQL_SERVICE_USER=root: 设置 MySQL 的用户名,默认是 root。
- -e MYSQL_SERVICE_PASSWORD=root: 设置 MySQL 的密码。
- -v D:\nacos\logs:/home/nacos/logs: 将 Windows 的本地日志目录映射到容器中的日志目录。
- -v D:\nacos\init.d\custom.properties:/home/nacos/init.d/custom.properties: 将本地的配置文件映射到容器中的初始化目录。
- -v D:\nacos\data:/home/nacos/data: 将本地的 Nacos 数据目录映射到容器中的数据目录。
- 确保容器间的网络互通 如果 MySQL 和 Nacos 运行在不同的 Docker 容器中,需要确保容器之间的网络互通。在 Docker 中,容器通过网络连接,因此需要确保 MySQL 容器和 Nacos 容器处于同一个网络中。可以创建一个自定义网络,并将 MySQL 和 Nacos 容器连接到该网络。
docker network create mynetwork
然后启动 MySQL 和 Nacos 容器时指定该网络:
docker run --name mysql --network mynetwork -d -e MYSQL_ROOT_PASSWORD=root mysql:5.7
确保在启动 Nacos 容器时传递了正确的 MySQL 配置信息。特别是以下环境变量需要正确设置:
MYSQL_SERVICE_HOST: MySQL 服务的主机名(如果是容器中运行 MySQL,确保容器之间网络互通)
MYSQL_SERVICE_PORT: MySQL 服务的端口,默认是 3306
MYSQL_SERVICE_USER: MySQL 的用户名(通常是 root)
MYSQL_SERVICE_PASSWORD: MySQL 的密码
MYSQL_SERVICE_DB_NAME: Nacos 使用的数据库名称
4. 数据库初始化失败的处理 有时,数据库没有正确初始化或未创建必要的表,导致 Nacos 无法加载配置。可以尝试以下步骤:
登录 MySQL,确保数据库和表都已存在。 如果数据库或表不存在,可以从 Nacos 官方文档获取数据库初始化 SQL 脚本,手动执行初始化。
官方 SQL 脚本下载链接:Nacos 初始化数据库脚本
- 启动成功 成功启动容器后,您可以通过浏览器访问 Nacos 控制台,默认地址为 http://localhost:8848/nacos。
成功启动的例子截图如下:
技术细节
配置文件和日志
- custom.properties 文件可以用来定制 Nacos 的各种设置,例如集群配置、日志配置等。
- 日志文件可以通过 -v D:\nacos\logs:/home/nacos/logs 映射到宿主机上,便于查看 Nacos 的运行日志。
MySQL 配置
- MYSQL_SERVICE_HOST: 配置 MySQL 服务的主机名。如果 MySQL 运行在同一 Docker 网络中,可以直接用容器名(如 mysql)。
- MYSQL_SERVICE_DB_NAME: Nacos 使用的数据库名称。确保该数据库在 MySQL 中存在。
小结
通过 Docker Desktop 部署 Nacos 2.4.3 非常简单且方便,只需要保证容器间的网络互通,并确保 MySQL 数据库正确配置。如果遇到数据库初始化问题,记得手动执行 SQL 脚本来初始化数据库。