您现在的位置是:首页 >技术杂谈 >07-微服务部署2023系列-centos+docker部署nacos网站首页技术杂谈
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.2nacos2
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