docker安装nacos

nacos

最近尝试着将项目由springcloud + netflix重构为springcloud alibaba,需要安装一些组件,感觉安装太麻烦,版便尝试着使用docker来部署,发现挺方便,记录一下。

单机版

docker直接运行

1)准备工作

# 创建文件夹存放一些配置文件
mkdir -p /home/docker/nacos
cd /home/docker/nacos

2)创建配置文件
vim nacos-standlone-mysql.env

PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=192.168.0.130
MYSQL_SERVICE_DB_NAME=nacos_config
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123456

JVM_XMS=512m
JVM_XMX=512m
JVM_XMN=256m
JVM_MS=32m
JVM_MMS=80m
# 保存退出 :wq

vim custom.properties

#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*

# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
# 保存退出

3)运行

# 注意使用绝对路径
docker run --name standalone-mysql-5.7 -d 
--env-file /home/docker/nacos/nacos-standlone-mysql.env 
-p 8848:8848 
-p 9555:9555 
-v /home/docker/nacos/standalone-logs/:/home/nacos/logs 
-v /home/docker/nacos/custom.properties:/home/nacos/init.d/custom.properties 
--restart=on-failure 
nacos/nacos-server:1.2.0 

docker-compose运行

官方提供的方式就是docker-compose的方式
nacos docker 连接
1)下载git到本地

# 运行
git clone https://github.com/nacos-group/nacos-docker.git
#切换到1.2.0的分支
git checkout 1.2.0 

2)修改配置文件
vim nacos-docker/example/standalone-mysql-5.7.yaml

version: "2"
services:
  nacos:
    image: nacos/nacos-server:1.2.0
    container_name: nacos-standalone-mysql
    env_file:
      - ../env/nacos-standlone-mysql.env
    volumes:
      - ./standalone-logs/:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8848:8848"
      - "9555:9555"
    restart: on-failure

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

PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=192.168.0.130 # mysql的ip
MYSQL_SERVICE_DB_NAME=nacos_config # mysql的库名
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123456

# 修改JVM参数,nacos集群模式默认内存 java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m ,这里需要修改内存配置(根据你的硬件配置调整)
JVM_XMS=512m
JVM_XMX=512m
JVM_XMN=256m
JVM_MS=32m
JVM_MMS=80m

# 保存退出

vim ./init.d/custom.properties

#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*

# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

3)启动

# 先切换目录
cd nacos-docker/example
# 启动
docker-compose -f standalone-mysql-5.7.yaml up -d
docker ps

集群

1)拉取代码

# 没有的话就安装
yum insyall -y git

git clone https://github.com/nacos-group/nacos-docker.git
#切换到1.2.0的分支
git checkout 1.2.0 
# 查看当前分支
[root@VM_0_16_centos nacos-docker]# git branch -v
* 1.2.0  a24dd38 Fix auth not enabled #79
  master a24dd38 Fix auth not enabled #79

2)修改配置文件
注意:这里会用host方式运行
2.1)nacos-hostname.env
先备份旧文件:cp env/nacos-hostname.env env/nacos-hostname.env.bak
vim env/nacos-hostname.env

###开始
#nacos dev env
PREFER_HOST_MODE=hostname
NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848 
MYSQL_SERVICE_HOST=192.168.0.130 # mysql的ip
MYSQL_SERVICE_DB_NAME=nacos_config # mysql的库名
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123456

# 修改JVM参数,nacos集群模式默认内存 java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m ,一般情况下三台机子+mysql需要8G以上内存才够用,这里需要修改内存配置
JVM_XMS=512m
JVM_XMX=512m
JVM_XMN=256m
JVM_MS=32m
JVM_MMS=80m
###结束

2.2)cluster-hostname.yaml
先备份旧文件:cp example/cluster-hostname.yaml example/cluster-hostname.yaml.bak
vim example/cluster-hostname.yaml
删除内嵌的mysql及其依赖(可选,如果你不需要使用自己的mysql就不用删除)

version: "3"
services:
  nacos1:
    hostname: nacos1
    container_name: nacos1
    image: nacos/nacos-server:1.2.0 # 注意所有的nacos版本由latest更换为1.2.0
    volumes:
      - ./cluster-logs/nacos1:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8848:8848"
      - "9555:9555"
    env_file:
      - ../env/nacos-hostname.env
    restart: always

  nacos2:
    hostname: nacos2
    image: nacos/nacos-server:1.2.0
    container_name: nacos2
    volumes:
      - ./cluster-logs/nacos2:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8849:8848"
    env_file:
      - ../env/nacos-hostname.env
    restart: always

  nacos3:
    hostname: nacos3
    image: nacos/nacos-server:1.2.0
    container_name: nacos3
    volumes:
      - ./cluster-logs/nacos3:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8850:8848"
    env_file:
      - ../env/nacos-hostname.env
    restart: always

2.3)创建数据库表
执行下一步之前先在你的mysql中创建nacos_config数据库,然后运行sql文件

https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql

3)运行

#很重要
cd example # 进入当前文件夹
docker-compose -f ./cluster-hostname.yaml up -d
docker ps 

# 删除
docker-compose -f ./cluster-hostname.yaml stop
原文地址:https://www.cnblogs.com/bartggg/p/12981922.html