使用 Docker Compose 搭建 Nacos 集群是一种非常方便且常见的方法,特别是在开发和测试环境中。下面是一个基本的 Docker Compose 配置文件示例,用于在单台机器上部署一个 Nacos 集群。这个示例配置会启动三个 Nacos 实例,使它们相互之间能够发现并形成一个集群。
前提条件
- 确保已经安装了 Docker 和 Docker Compose。
步骤
1. 创建 Docker Compose 文件
首先,创建一个名为 docker-compose.yml
的文件,内容如下:
yaml
version: '3'
services:
nacos1:
image: nacos/nacos-server
environment:
- PREFER_HOST_MODE=hostname
- NACOS_REPLICAS=3
- NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=nacos
- MYSQL_SERVICE_PASSWORD=nacos
ports:
- "8848:8848"
- "9555:9555"
depends_on:
- mysql
nacos2:
image: nacos/nacos-server
environment:
- PREFER_HOST_MODE=hostname
- NACOS_REPLICAS=3
- NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=nacos
- MYSQL_SERVICE_PASSWORD=nacos
ports:
- "8849:8848"
nacos3:
image: nacos/nacos-server
environment:
- PREFER_HOST_MODE=hostname
- NACOS_REPLICAS=3
- NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=nacos
- MYSQL_SERVICE_PASSWORD=nacos
ports:
- "8850:8848"
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: nacos
MYSQL_USER: nacos
MYSQL_PASSWORD: nacos
ports:
- "3306:3306"
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8
--collation-server=utf8_unicode_ci
--explicit-defaults-for-timestamp=1
volumes:
- ./mysql:/var/lib/mysql
networks:
default:
external:
name: nacos-net
2. 创建网络
如果网络 nacos-net
不存在,你需要创建它,以确保所有容器都在同一个网络中互相通信。
bash
docker network create nacos-net
3. 启动 Docker Compose
在包含 docker-compose.yml
文件的目录中运行以下命令:
bash
docker-compose up -d
这个命令将启动定义在 docker-compose.yml
文件中的所有服务。
验证集群状态
一旦容器启动,你可以通过浏览器访问以下任一地址来检查 Nacos 的管理界面:
默认的用户名和密码通常是 nacos
。
这就完成了使用 Docker Compose 在单台机器上搭建 Nacos 集群的过程。确保你的机器有足够的资源来运行多个容器。如果需要,你可以根据实际情况调整内存和 CPU 分配。