使用 Docker Compose 部署 Nacos 连接 MySQL
在微服务架构中,服务注册与发现是一个关键的组件。Nacos 是一个开源的动态服务发现、配置管理和服务管理平台,可以帮助我们轻松处理微服务架构中的服务注册与发现的问题。而 Docker Compose 则是一个用于定义和运行多容器 Docker 应用程序的工具,可以通过一个单独的配置文件管理多个容器的启动和连接。
本文将介绍如何使用 Docker Compose 部署 Nacos,并连接到 MySQL 数据库。我们将按照以下步骤进行操作:
步骤一:安装 Docker 和 Docker Compose
首先,我们需要安装 Docker 和 Docker Compose。请根据自己的操作系统选择相应的安装方式,并确保安装成功。
步骤二:编写 Docker Compose 配置文件
我们需要编写一个 Docker Compose 配置文件来定义 Nacos 和 MySQL 的容器。在项目根目录下创建一个名为 docker-compose.yml
的文件,并将以下内容复制到文件中:
version: '3'
services:
nacos:
image: nacos/nacos-server:latest
ports:
- 8848:8848
environment:
- PREFER_HOST_MODE=hostname
depends_on:
- mysql
networks:
- nacos-network
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=nacos
- MYSQL_USER=nacos
- MYSQL_PASSWORD=nacos
volumes:
- mysql-data:/var/lib/mysql
networks:
- nacos-network
volumes:
mysql-data:
networks:
nacos-network:
在这个配置文件中,我们定义了两个服务:nacos 和 mysql。nacos 服务使用 nacos/nacos-server
镜像,mysql 服务使用 mysql:5.7
镜像。我们还定义了一些环境变量来配置 MySQL 数据库的用户名、密码和数据库名称。
步骤三:使用 Docker Compose 启动容器
完成配置文件后,我们可以使用 Docker Compose 启动容器。在命令行中进入到项目根目录,然后执行以下命令:
docker-compose up -d
这将会启动 Nacos 和 MySQL 的容器,并将它们连接到一个自定义的网络中。
步骤四:访问 Nacos 控制台
等待一段时间后,Nacos 和 MySQL 的容器应该已经成功启动了。现在,我们可以通过浏览器访问 Nacos 控制台了。
打开浏览器,并输入 http://localhost:8848/nacos
,将会看到 Nacos 的登录页面。使用默认的用户名和密码(用户名:nacos,密码:nacos),登录到 Nacos 控制台。
步骤五:连接 MySQL 数据库
现在,我们已经成功部署了 Nacos,并可以通过 Nacos 控制台管理服务和配置。接下来,我们将介绍如何在 Nacos 中配置连接到 MySQL 数据库。
- 在 Nacos 控制台左侧的导航栏中,选择 "配置管理"。
- 点击 "配置列表",然后点击 "新建配置"。
- 在 "Data ID" 输入框中,输入
mysql.properties
。 - 在 "Group" 输入框中,输入
DEFAULT_GROUP
。 - 在 "配置内容" 输入框中,输入以下内容:
spring.datasource.url=jdbc:mysql://mysql:3306/nacos?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=nacos
spring.datasource.password=nacos
这里的 mysql
是我们在 Docker Compose 文件中定义的 MySQL 服务的名称。
- 点击 "发布" 按钮,完成配置的发布。
现在,Nacos 已经配置了连接到 MySQL 数据库的信息。在微服务中,可以使用这些配置信息来连接到 MySQL 数据库。
流程图
flowchart TD
A(安装 Docker 和 Docker Compose) --> B(编写 Docker Compose 配置文件)
B --> C(使用 Docker Compose 启动容器)
C --> D(访问 Nacos 控制台)
D --> E(连接 MySQL 数据库)
状态图
stateDiagram
[*] --> 安装 Docker 和 Docker