插件窝 干货文章 Docker中启动Nacos的实现示例

Docker中启动Nacos的实现示例

Nacos 8848 server properties 115    来源:    2025-04-01

Docker 中启动 Nacos 的实现示例

Nacos 是一个动态服务发现、配置和服务管理平台,使用 Docker 可以方便地部署和运行 Nacos 服务。以下是几种常见的 Docker 启动 Nacos 的方式。

1. 单机模式启动

使用官方镜像

docker run --name nacos-standalone -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:latest

参数说明:

  • --name nacos-standalone: 容器名称
  • -e MODE=standalone: 设置为单机模式
  • -p 8848:8848: 映射容器8848端口到宿主机
  • -d: 后台运行
  • nacos/nacos-server:latest: 使用最新版Nacos镜像

2. 集群模式启动

使用 Docker Compose 部署集群

创建 docker-compose.yml 文件:

version: '3'
services:
  nacos1:
    image: nacos/nacos-server:latest
    container_name: nacos1
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=cluster
      - NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
      - NACOS_SERVER_IP=nacos1
    ports:
      - "8848:8848"
    volumes:
      - ./cluster-logs/nacos1:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    networks:
      - nacos_net

  nacos2:
    image: nacos/nacos-server:latest
    container_name: nacos2
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=cluster
      - NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
      - NACOS_SERVER_IP=nacos2
    ports:
      - "8849:8848"
    volumes:
      - ./cluster-logs/nacos2:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    networks:
      - nacos_net

  nacos3:
    image: nacos/nacos-server:latest
    container_name: nacos3
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=cluster
      - NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
      - NACOS_SERVER_IP=nacos3
    ports:
      - "8850:8848"
    volumes:
      - ./cluster-logs/nacos3:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    networks:
      - nacos_net

networks:
  nacos_net:
    driver: bridge

然后运行:

docker-compose up -d

3. 持久化配置

为了持久化Nacos的数据和配置,可以挂载以下目录:

docker run --name nacos \
  -e MODE=standalone \
  -p 8848:8848 \
  -v ./data:/home/nacos/data \
  -v ./logs:/home/nacos/logs \
  -v ./conf:/home/nacos/conf \
  -d nacos/nacos-server:latest

4. 自定义配置

可以创建自定义配置文件 custom.properties

# 开启认证
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=your-key
nacos.core.auth.server.identity.value=your-value

# 数据库配置(如果使用外部数据库)
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://mysql-host:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=username
db.password=password

然后挂载到容器中:

docker run --name nacos \
  -e MODE=standalone \
  -p 8848:8848 \
  -v ./custom.properties:/home/nacos/init.d/custom.properties \
  -d nacos/nacos-server:latest

5. 连接MySQL数据库

如果需要使用外部MySQL数据库而不是内置的Derby:

docker run --name nacos \
  -e MODE=standalone \
  -e SPRING_DATASOURCE_PLATFORM=mysql \
  -e MYSQL_SERVICE_HOST=your-mysql-host \
  -e MYSQL_SERVICE_PORT=3306 \
  -e MYSQL_SERVICE_USER=root \
  -e MYSQL_SERVICE_PASSWORD=your-password \
  -e MYSQL_SERVICE_DB_NAME=nacos \
  -p 8848:8848 \
  -d nacos/nacos-server:latest

6. 访问Nacos

启动后,可以通过以下URL访问Nacos控制台:

http://localhost:8848/nacos

默认用户名和密码都是 nacos

注意事项

  1. 生产环境建议使用集群模式而非单机模式
  2. 重要数据一定要配置持久化
  3. 默认配置不安全,生产环境务必配置认证
  4. 资源限制:Nacos需要足够的内存,建议至少分配2GB内存

以上示例提供了Nacos在Docker中的常见部署方式,可以根据实际需求进行调整。