Nacos Docker 部署指南

Nacos Docker 部署指南

前言

Nacos Server的docker镜像的build源码,以及Nacos server 在Docker单机运行部署案例。

Naocs项目目录

|--build:nacos 镜像制作的源码
|--env: docker compose 环境变量文件
|--example: docker-compose 编排例子

运行环境

  • Centos 8.0

  • Docker

  • MYSQL 8.0

配置

4.1 克隆项目

git clone --depth 1 https://github.com/nacos-group/nacos-docker.git
cd nacos-docker-master/example

4.2 拷贝文件Docker指定挂载目录

1,将 nacos-docker-master/env/nacos-standlone-mysql.env 文件 拷贝至docker 需要挂载的目录
3,将 nacos-docker-master/env/mysql.env 文件 拷贝至docker 需要挂载的目录
4,将 nacos-docker-master/example/init.d 文件夹 拷贝至docker 需要挂载的目录
5,将 nacos-docker-master/example/plugins 文件夹 拷贝至docker 需要挂载的目录

4.2 修改 mysql.env

​ 一般默认即可,不建议进行修改。

vim  nacos-docker-master/env/mysql.env

MYSQL_ROOT_PASSWORD=root               # root 密码
MYSQL_DATABASE=nacos_devtest           # nacos 表
MYSQL_USER=nacos                       # nacos 用户

4.3 修改 nacos-standlone-mysql.env

​ 一般默认即可,不建议进行修改

vim  nacos-docker-master/env/nacos-standlone-mysql.env

PREFER_HOST_MODE=hostname                         #  是否支持主机名主机名/ IP默认IP
MODE=standalone                                             #  系统启动方式: 集群/单机
SPRING_DATASOURCE_PLATFORM=mysql            #  独立支持mysql /mysql /空默认为空
MYSQL_SERVICE_HOST=mysql                              #  mysql主机
MYSQL_SERVICE_DB_NAME=nacos_devtest     #  数据库名称
MYSQL_SERVICE_PORT=3306                   #  mysql数据库端口
MYSQL_SERVICE_USER=nacos                              #  数据库的用户名
MYSQL_SERVICE_PASSWORD=nacos            #  数据库密码

4.4 创建Docker 网络及编辑standalone-mysql-8.yaml

​ 创建容器间网络,方便两个容器之间进行通信

docker network create -d bridge --subnet  172.16.238.0/16 net

​ 编辑 standalone-mysql-8.yaml

vim nacos-docker-master/example/standalone-mysql-8.yaml

version: "2"
services:
  nacos:
    image: nacos/nacos-server:latest   
    container_name:  nacos
    env_file:
      - /vdb/data/nacos/env/nacos-standlone-mysql.env  # 4.2 中 相对应挂载目录
    volumes:
      - /vdb/data/nacos/plugins/mysql/:/home/nacos/plugins/mysql/  # 4.2 中相对应挂载目录挂载目录
      - /vdb/data/nacos/standalone-logs/:/home/nacos/logs # nacos logs 挂载
      - /vdb/data/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties # 初始化
    ports:
      - "8848:8848"
      - "9555:9555"
    depends_on: # 依赖启动
      - mysql
    restart: always 
    networks:   # 使用下方定义网络
      net: 
        ipv4_address: 172.16.238.12
  mysql:
    container_name: mysql-8.0
    image: nacos/nacos-mysql:8.0.16
    env_file:
      - /vdb/data/nacos/env/mysql.env #   4.2 中相对应挂载目录挂载目录
    volumes:
      - /vdb/data/mysql:/var/lib/mysql #   挂载mysql日志以及db文件
    ports:
      - "3306:3306"
    restart: always
    networks: # 使用下方定义网络
      net:
        ipv4_address: 172.16.238.11   

networks: # 自定义网络
  net:
    external: true 

使用 Nacos

5.1 Docker Compose 编译运行

docker-compose -f example/standalone-mysql-8.yaml up # 加入 -d 后台启动

​ 出现日志说明成功启动。

5.2 访问 Nacos 并使用

  • ​ 访问
  curl 127.0.0.1:8848/nacos # 不出现报错现象说明已可以正常访问
  • ​ 服务注册
  curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
  • ​ 服务发现
  shell curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'
  • 在浏览器中打开Nacos 控制台
  link:http://127.0.0.1:8848/nacos/

结束语

  1. 其中与Nacos 配合使用的是Dubbo。
  2. 在安装过程中如有不懂,可联系作者。