centos7 在docker中安装nacos 2.0.0 存储用mysql 8
Nacos是阿里开源的一个统一配置/注册中心的开源软件。
官网:https://nacos.io/
代码:https://github.com/alibaba/nacos
阿里云官网有一个现成版本可以免安装直接用(缺点:每个空间限制200个key) https://acmnext.console.aliyun.com/public
注意:nacos>=1.3.1的版本才开始支持mysql 8.0.x
配置建议:实际运行内存预计使用1.2G左右,建议选择内存大一点的服务器(2G+)。
实测2G内存的服务器装了其他的东西,安装nacos 2.0导致CPU跑满,主要卡在GC这,换个内存大的服务器(8G)正常运行
一、说明下2.0和1.4版本的的差异(有升级需求的关注下,没有忽略)
1.1 SQL数据结构上,时间类型的默认值有调整,如下图(左边是2.0右边是1.4)
1.2 索引有变化
1.3 docker容器里的配置文件application.properties
对比没有变化
二、创建nacos存储的数据库
sql链接地址:nacos-db.sql ,也可在github发布的压缩包 路径nacos\conf\nacos-mysql.sql
里找到
执行sql脚本后如下图:
三、创建宿主机挂载目录
主要用于存放nacos日志
mkdir -p /data/nacos/logs/
四、获取nacos镜像
docker search nacos
指定版本拉取镜像的,查看tag
https://hub.docker.com/r/nacos/nacos-server/tags?page=1&ordering=last_updated
docker pull nacos/nacos-server:2.0.0
五、运行容器
官方docker参考:https://nacos.io/zh-cn/docs/quick-start-docker.html
注意:不同nacos版本可能参数有变化,进入容器docker exec -it nacos bash
查看cat /home/nacos/conf/application.properties
里的参数名
MYSQL_SERVICE_DB_PARAM:数据库链接字符串后的参数,默认值:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
传环境变量运行nacos单机模式(修改下面的数据库链接):
docker run -d \
-v /data/nacos/logs:/home/nacos/logs \
-e TZ="Asia/Shanghai" \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库IP地址 \
-e MYSQL_SERVICE_PORT=数据库端口 \
-e MYSQL_SERVICE_USER=数据库账户 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM= \
-e NACOS_APPLICATION_PORT=8848 \
-p 8848:8848 \
--name nacos \
--restart=always \
nacos/nacos-server:2.0.0
查看运行的nacos容器docker ps -a
如果发生错误,无法启动nacos,查看容器日志docker logs -f --tail=50 nacos
或者查看start.outcat /data/nacos/logs/start.out
查看docker运行状态docker stats
,下图第一个nacos是2.0的版本,下面是1.4的版本
配置好数据库存储,即使删除docker容器再重开,配置依然在,便于后续升级nacos版本!!!
六、配置域名 nginx等
nginx参考配置如下,默认账号密码:nacos
server {
listen 80;
server_name config.yuming.com; # 绑定域名
location / {
rewrite ^ http://$server_name/nacos redirect;
}
location /nacos {
proxy_pass http://localhost:8848; #反向代理地址+端口
proxy_set_header Host $http_host; #设置Host
proxy_set_header X-Real-Ip $remote_addr; #设置客户端远程地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
}
}
六、sdk接入说明
链接:https://github.com/nacos-group/