您现在的位置是:首页 >技术杂谈 >07-微服务部署2023系列-centos+docker部署nacos网站首页技术杂谈

07-微服务部署2023系列-centos+docker部署nacos

张燊Jason 2024-06-14 17:19:03
简介07-微服务部署2023系列-centos+docker部署nacos

1、创建nacos的数据库配置

1.1、创建数据库

1.2、创建用户nacos并授权数据库

参考 06 mysql 创建账户部分内容

1.3、执行数据库脚本

导入官方nacos sql语句。如果是历史有历史数据, 从历史数据sql导入

2、创建 bridge 网络并指定 IP 区间

2.1、创建自定义网络

docker network create --driver bridge --subnet 172.0.0.0/16 nacos_network

2.2、查看已存在网络

docker network ls

3、创建数据和配置服务器存放目录

3.1、 创建 nacos 存放目录

mkdir -p /root/docker/nacos/conf && chown -R 200 /root/docker/nacos/conf

mkdir -p /root/docker/nacos/logs && chown -R 200 /root/docker/nacos/logs

mkdir -p /root/docker/nacos/data && chown -R 200 /root/docker/nacos/data

4、安装nacos

4.1、注意点

1、先启动,然后从容器中复制出来配置文件、然后挂载本地目录,再次启动,启动时候可以修改运行端口号等其他配置项内容哦

4.2、测试运行(未挂载本地目录): 目的是复制配置文件出来

docker run -d --name nacos --env PREFER_HOST_MODE=hostname
--env MODE=standalone -p 8848:8848 nacos/nacos-server:v2.2.2

看启动日志

docker logs -f nacos

4.3、复制镜像中的conf目录里的文件,到本地盘

docker cp -a nacos:/home/nacos/conf /root/docker/nacos

4.4、查看是否复制成功

ls /root/docker/nacos/conf/

期待结果

4.6、修改配置文件(跳过, 没什么修改的,配置都在启动时传入)

vi /root/docker/nacos/conf/application.properties

4.5、删除已生成的历史容器

docker rm -f nacos

4.6、重新部署nacos(挂载本地目录)

docker run -d --name nacos  --restart always --privileged=true 
-p 17001:8848 -p 17002:9848 -p 17003:9849 
-v /root/docker/nacos/conf:/home/nacos/conf 
-v /root/docker/nacos/data:/home/nacos/data 
-v /root/docker/nacos/logs:/home/nacos/logs 
-e MODE=standalone 
-e SPRING_DATASOURCE_PLATFORM=mysql 
-e MYSQL_SERVICE_HOST=39.108.208.140 
-e MYSQL_SERVICE_PORT=18001 
-e MYSQL_SERVICE_DB_NAME=cloud_nacos 
-e MYSQL_SERVICE_USER=mydbuser 
-e MYSQL_SERVICE_PASSWORD=myDBPass123 
-e NACOS_AUTH_ENABLE=true 
-e NACOS_AUTH_IDENTITY_KEY=nacos 
-e NACOS_AUTH_IDENTITY_VALUE=nacosPass123 
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 
nacos/nacos-server:v2.2.2

参数说明

 --restart always  重启docker时,自动启动相关容器

--privileged=true  扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,可能会出现cannot open directory


-p 17001:8848 -p 17002:9848 -p 17003:9849    指定端口映射,注意这里的p不能大写,大写是随机端口映射; (9848、9849为nacos2.X新增端口,不加的话SpringBoot服务会注册失败)


-v /root/docker/nacos/conf:/home/nacos/conf     挂载conf目录
-v /root/docker/nacos/data:/home/nacos/data     挂载data目录
-v /root/docker/nacos/logs:/home/nacos/logs     挂载logs目录


-e MODE=standalone   使用 standalone模式(单机模式),MODE值有cluster(集群)模式/standalone模式两种,MODE必须大写


-e SPRING_DATASOURCE_PLATFORM=mysql    指定 nacos 数据源为MySQL
-e MYSQL_SERVICE_HOST=39.108.208.140   数据库IP
-e MYSQL_SERVICE_PORT=18001   数据库端口
-e MYSQL_SERVICE_DB_NAME=cloud_nacos   数据库库名
-e MYSQL_SERVICE_USER=mydbuser    数据库用户名
-e MYSQL_SERVICE_PASSWORD=myDBPass123  数据库密码

下面四项是2.1以上版本取消了默认值,必须手动赋值, 鉴权访问相关的:
-e NACOS_AUTH_ENABLE=true  
-e NACOS_AUTH_IDENTITY_KEY=nacos
-e NACOS_AUTH_IDENTITY_VALUE=nacosPass123
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789

5、验证是否部署成功

5.1、查看启动日志

docker logs -f nacos

5.2、查看视图界面

5.2.1、默认账号密码: nacos/nacos

5.2.2、浏览地址

http://你的IP: 你上面映射的8848的端口17001/nacos

5.2.3、登录成功后视图

6、配置中心

7、注册中心

8、附加知识(集群部署时)

配置实例

docker run -d --name nacos  --restart always --privileged=true 
-p 17001:8848 -p 17002:9848 -p 17003:9849 
-v /root/docker/nacos/conf:/home/nacos/conf 
-v /root/docker/nacos/data:/home/nacos/data 
-v /root/docker/nacos/logs:/home/nacos/logs 
-net host 
-e MODE=cluster 
-e NACOS_SERVERS='其他2结点IP:端口,其他3结点IP:端口'   
-e SPRING_DATASOURCE_PLATFORM=mysql 
-e MYSQL_SERVICE_HOST=39.108.208.140 
-e MYSQL_SERVICE_PORT=18001 
-e MYSQL_SERVICE_DB_NAME=cloud_nacos 
-e MYSQL_SERVICE_USER=mydbuser 
-e MYSQL_SERVICE_PASSWORD=myDBPass123 
-e NACOS_AUTH_ENABLE=true 
-e NACOS_AUTH_IDENTITY_KEY=nacos 
-e NACOS_AUTH_IDENTITY_VALUE=nacosPass123 
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 
-e TZ=Asia/Shanghai 
nacos/nacos-server:v2.2.2

docker run -d --name nacos-cluster
-p 8848:8848
-p 9848:9848
-p 9849:9849 (9848、9849为nacos2.X新增端口,不加的话SpringBoot服务会注册失败)
–net host (从桥接模式改成主机模式,用主机的ip地址,不然注册服务可能会出错)
–restart always (前面为两个短杠,记得修改)
-v /usr/local/nacos/logs:/home/nacos/logs
-v /usr/local/nacos/data:/home/nacos/data
-v /usr/local/nacos/conf:/home/nacos/conf 
-e MODE=cluster
-e NACOS_SERVERS=192.168.137.133:8848 (此处为指向其他集群服务的ip地址,如果有多个ip则用单引号括起来)
-e SPRING_DATASOURCE_PLATFORM=mysql
-e MYSQL_SERVICE_HOST=192.168.137.134
-e MYSQL_SERVICE_PORT=3306
-e MYSQL_SERVICE_DB_NAME=nacos
-e MYSQL_SERVICE_USER=root
-e MYSQL_SERVICE_PASSWORD=数据库密码
-e TZ=Asia/Shanghai (不加时间注册服务时可能会报错)
nacos/nacos-server:v2.2.2

nacos2

docker run -d --name nacos-cluster
-p 8848:8848
-p 9848:9848
-p 9849:9849 (9848、9849为nacos2.X新增端口,不加的话SpringBoot服务会注册失败)
–net host (从桥接模式改成主机模式,用主机的ip地址,不然注册服务可能会出错)
–restart always (前面为两个短杠,记得修改)

-v /root/docker/nacos/conf:/home/nacos/conf     挂载conf目录
-v /root/docker/nacos/data:/home/nacos/data     挂载data目录
-v /root/docker/nacos/logs:/home/nacos/logs     挂载logs目录
-e MODE=cluster
-e NACOS_SERVERS=192.168.137.134:8848 (此处为指向其他集群服务的ip地址,如果有多个ip则用单引号括起来)
-e SPRING_DATASOURCE_PLATFORM=mysql
-e MYSQL_SERVICE_HOST=192.168.137.134
-e MYSQL_SERVICE_PORT=3306
-e MYSQL_SERVICE_DB_NAME=nacos
-e MYSQL_SERVICE_USER=root
-e MYSQL_SERVICE_PASSWORD=数据库密码
-e TZ=Asia/Shanghai (不加时间注册服务时可能会报错)
nacos/nacos-server:v2.2.2

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。