1 下载
下载镜像
$ docker pull nacos/nacos-server
2 启动
配置文件/opt/nacos/init.d/custom.properties内容如下
management.endpoints.web.exposure.include=*
使用standalone模式并开放8848端口,并映射配置文件和日志目录,数据库默认使用 Derby
$ 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
version: "2"services:nacos:image: nacos/nacos-server:latestcontainer_name: nacosenvironment:- MODE=standalonevolumes:- /opt/nacos/logs:/home/nacos/logs- /opt/nacos/init.d/custom.properties:/home/nacos/init.d/custom.propertiesports:- "8848:8848"
启动
docker-compose -f standalone-derby.yaml up
关闭
docker-compose -f standalone-derby.yaml stop
移除
docker-compose -f standalone-derby.yaml rm
关闭且移除
docker-compose -f standalone-derby.yaml down
使用docker部署Nacos
操作步骤
这里说的也是单机版部署教程
docker start nacos
用起来非常简单, 每次需要用到执行上面的命令即可.
打开nacos控制台 http://ip:8848/nacos
docker run部署
获取镜像
docker pull nacos/nacos-server
初始化nacos数据库
初始化nacos数据sql
运行镜像
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-serverdocker exec -it <CONTAINER ID> bashvim conf/application.properties// 修改对应mysql参数docker restart nacos/nacos-serverdocker 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-compose up部署
Clone 项目
git clone https://github.com/nacos-group/nacos-docker.gitcd nacos-docker
修改mysql配置
## \nacos-docker\env\nacos-standlone-mysql.envPREFER_HOST_MODE=hostnameMODE=standaloneSPRING_DATASOURCE_PLATFORM=mysqlMYSQL_SERVICE_HOST=192.168.31.219MYSQL_SERVICE_DB_NAME=barm_nacosMYSQL_SERVICE_PORT=3306MYSQL_SERVICE_USER=rootMYSQL_SERVICE_PASSWORD=123456
初始化nacos数据库
初始化nacos数据sql
修改standalone-mysql.yaml
注释掉mysql,prometheus,grafana(健康相关的暂时用不上)
version: "2"services:nacos:image: nacos/nacos-server:latestcontainer_name: nacos-standalone-mysqlenv_file:- ../env/nacos-standlone-mysql.envvolumes:- ./standalone-logs/:/home/nacos/logs- ./init.d/custom.properties:/home/nacos/init.d/custom.propertiesports:- "8848:8848"- "9555:9555"# depends_on:# - mysqlrestart: on-failure# mysql:# container_name: mysql# image: mysql:5.7.29# env_file:# - ../env/mysql.env# volumes:# - ./mysql:/var/lib/mysql# ports:# - "3306:3306"# prometheus:# container_name: prometheus# image: prom/prometheus:latest# volumes:# - ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml# ports:# - "9090:9090"# depends_on:# - nacos# restart: on-failure# grafana:# container_name: grafana# image: grafana/grafana:latest# ports:# - 3000:3000# restart: on-failure
单机模式 Mysql
docker-compose -f example/standalone-mysql.yaml up
服务注册
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
服务发现
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'
发布配置
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
获取配置
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 login --username=username registry.cn-aliyuncs.comdocker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/username/barm-nacos:[镜像版本号]docker push registry.cn-hangzhou.aliyuncs.com/allenalan/barm-nacos:[镜像版本号]
好了就这些, 欢迎关注,评论,点赞, 转发~
