1 下载

下载镜像

  1. $ docker pull nacos/nacos-server

2 启动

配置文件/opt/nacos/init.d/custom.properties内容如下

  1. management.endpoints.web.exposure.include=*

使用standalone模式并开放8848端口,并映射配置文件和日志目录,数据库默认使用 Derby

  1. $ docker run -d -p 8848:8848 -e MODE=standalone -v /opt/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties -v /opt/nacos/logs:/home/nacos/logs --restart always --name nacos nacos/nacos-server

3 测试访问

直接访问 http://127.0.0.1:8848/nacos, 使用账号:nacos,密码:nacos 直接登录。nacos是默认账号和密码,登录成功后可以修改密码。

4. 使用docker-compose启动

也可以使用 docker-compose方式启动

  • 配置文件

docker-compose文件 standalone-derby.yaml

  1. version: "2"
  2. services:
  3. nacos:
  4. image: nacos/nacos-server:latest
  5. container_name: nacos
  6. environment:
  7. - MODE=standalone
  8. volumes:
  9. - /opt/nacos/logs:/home/nacos/logs
  10. - /opt/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
  11. ports:
  12. - "8848:8848"
  • 启动

    1. docker-compose -f standalone-derby.yaml up
  • 关闭

  1. docker-compose -f standalone-derby.yaml stop

移除

  1. docker-compose -f standalone-derby.yaml rm

关闭且移除

  1. docker-compose -f standalone-derby.yaml down

使用docker部署Nacos

操作步骤

这里说的也是单机版部署教程

  1. docker start nacos

用起来非常简单, 每次需要用到执行上面的命令即可.

打开nacos控制台 http://ip:8848/nacos

docker run部署

  • 获取镜像

    1. docker pull nacos/nacos-server
  • 初始化nacos数据库

    初始化nacos数据sql

  • 运行镜像

    1. docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
    2. docker exec -it <CONTAINER ID> bash
    3. vim conf/application.properties
    4. // 修改对应mysql参数
    5. docker restart nacos/nacos-server
    6. docker restart <CONTAINER ID>

    对应参数:

name description option
MODE cluster模式/standalone模式 cluster/standalone default cluster
NACOS_SERVERS nacos cluster地址 eg. ip1,ip2,ip3
PREFER_HOST_MODE 是否支持hostname hostname/ip default ip
NACOS_SERVER_PORT nacos服务器端口 default 8848
NACOS_SERVER_IP 多网卡下的自定义nacos服务器IP
SPRING_DATASOURCE_PLATFORM standalone 支持 mysql mysql / empty default empty
MYSQL_MASTER_SERVICE_HOST mysql 主节点host
MYSQL_MASTER_SERVICE_PORT mysql 主节点端口 default : 3306
MYSQL_MASTER_SERVICE_DB_NAME mysql 主节点数据库
MYSQL_MASTER_SERVICE_USER 数据库用户名
MYSQL_MASTER_SERVICE_PASSWORD 数据库密码
MYSQL_SLAVE_SERVICE_HOST mysql从节点host
MYSQL_SLAVE_SERVICE_PORT mysql从节点端口 default :3306
MYSQL_DATABASE_NUM 数据库数量 default :2
JVM_XMS -Xms default :2g
JVM_XMX -Xmx default :2g
JVM_XMN -Xmn default :1g
JVM_MS -XX:MetaspaceSize default :128m
JVM_MMS -XX:MaxMetaspaceSize default :320m
NACOS_DEBUG 开启远程调试 y/n default :n
TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled default :false

Docker安装-Nacos - 图1

docker-compose up部署

  • Clone 项目

    1. git clone https://github.com/nacos-group/nacos-docker.git
    2. cd nacos-docker
  • 修改mysql配置

    1. ## \nacos-docker\env\nacos-standlone-mysql.env
    2. PREFER_HOST_MODE=hostname
    3. MODE=standalone
    4. SPRING_DATASOURCE_PLATFORM=mysql
    5. MYSQL_SERVICE_HOST=192.168.31.219
    6. MYSQL_SERVICE_DB_NAME=barm_nacos
    7. MYSQL_SERVICE_PORT=3306
    8. MYSQL_SERVICE_USER=root
    9. MYSQL_SERVICE_PASSWORD=123456
  • 初始化nacos数据库

    初始化nacos数据sql

  • 修改standalone-mysql.yaml

注释掉mysql,prometheus,grafana(健康相关的暂时用不上)

  1. version: "2"
  2. services:
  3. nacos:
  4. image: nacos/nacos-server:latest
  5. container_name: nacos-standalone-mysql
  6. env_file:
  7. - ../env/nacos-standlone-mysql.env
  8. volumes:
  9. - ./standalone-logs/:/home/nacos/logs
  10. - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
  11. ports:
  12. - "8848:8848"
  13. - "9555:9555"
  14. # depends_on:
  15. # - mysql
  16. restart: on-failure
  17. # mysql:
  18. # container_name: mysql
  19. # image: mysql:5.7.29
  20. # env_file:
  21. # - ../env/mysql.env
  22. # volumes:
  23. # - ./mysql:/var/lib/mysql
  24. # ports:
  25. # - "3306:3306"
  26. # prometheus:
  27. # container_name: prometheus
  28. # image: prom/prometheus:latest
  29. # volumes:
  30. # - ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
  31. # ports:
  32. # - "9090:9090"
  33. # depends_on:
  34. # - nacos
  35. # restart: on-failure
  36. # grafana:
  37. # container_name: grafana
  38. # image: grafana/grafana:latest
  39. # ports:
  40. # - 3000:3000
  41. # restart: on-failure
  • 单机模式 Mysql

    1. docker-compose -f example/standalone-mysql.yaml up
  • 服务注册

    1. curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
  • 服务发现

    1. curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'
  • 发布配置

    1. curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
  • 获取配置

    1. curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

    Common property configuration

    | name | description | option | | —- | —- | —- | | MODE | cluster模式/standalone模式 | cluster/standalone default cluster | | NACOS_SERVERS | nacos cluster地址 | eg. ip1,ip2,ip3 | | PREFER_HOST_MODE | 是否支持hostname | hostname/ip default ip | | NACOS_SERVER_PORT | nacos服务器端口 | default 8848 | | NACOS_SERVER_IP | 多网卡下的自定义nacos服务器IP | | | SPRING_DATASOURCE_PLATFORM | standalone 支持 mysql | mysql / empty default empty | | MYSQL_MASTER_SERVICE_HOST | mysql 主节点host | | | MYSQL_MASTER_SERVICE_PORT | mysql 主节点端口 | default : 3306 | | MYSQL_MASTER_SERVICE_DB_NAME | mysql 主节点数据库 | | | MYSQL_MASTER_SERVICE_USER | 数据库用户名 | | | MYSQL_MASTER_SERVICE_PASSWORD | 数据库密码 | | | MYSQL_SLAVE_SERVICE_HOST | mysql从节点host | | | MYSQL_SLAVE_SERVICE_PORT | mysql从节点端口 | default :3306 | | MYSQL_DATABASE_NUM | 数据库数量 | default :2 | | JVM_XMS | -Xms | default :2g | | JVM_XMX | -Xmx | default :2g | | JVM_XMN | -Xmn | default :1g | | JVM_MS | -XX:MetaspaceSize | default :128m | | JVM_MMS | -XX:MaxMetaspaceSize | default :320m | | NACOS_DEBUG | 开启远程调试 | y/n default :n | | TOMCAT_ACCESSLOG_ENABLED | server.tomcat.accesslog.enabled | default :false |

Nacos + Grafana + Prometheus

有兴趣可以看看这个:

参考:Nacos监控指南
Note: grafana创建一个新数据源时,数据源地址必须是 http://prometheus:9090

上传阿里云docker私有镜像

登录阿里云创建自己对应的仓库
Docker安装-Nacos - 图2

  1. docker login --username=username registry.cn-aliyuncs.com
  2. docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/username/barm-nacos:[镜像版本号]
  3. docker push registry.cn-hangzhou.aliyuncs.com/allenalan/barm-nacos:[镜像版本号]

好了就这些, 欢迎关注,评论,点赞, 转发~