最近几年随着大数据和人工智能持续大热,容器化安装部署运维已经走进了各个中小公司,也得已让众多开发者能上手实际操作,不过说真心话,“万物皆可容器化”的理念越来越深入人心。
而如何使用docker-compose安装,配置,链接nacos呢?请详细参阅下文。
此文案是基于对docker已经有相当了解的开发工作者来编写的,有其他问题可以私信或者评论噢。
1.nacos安装配置说明docker-compose.yml
在保证网络状态良好的前提下,事先保证数据库可以正常访问且docker网络环境配置正确
version: "3.3"
services:nacos:image: nacos/nacos-server:v2.1.0restart: always# 各个模块服务注册地址hostname: nacos210container_name: nacos210_serverprivileged: truenetworks:- other_networkports:- 8848:8848- 9848:9848- 9849:9849environment:# 支持主机名可以使用hostname,否则使用ip,默认ip- PREFER_HOST_MODE=hostname# 单机模式- MODE=standalone# 数据源平台 支持mysql或不保存empty- SPRING_DATASOURCE_PLATFORM=mysql# mysql配置,!!!attention必须是mysql所在主机IP- MYSQL_SERVICE_HOST=10.15.0.211- MYSQL_SERVICE_PORT=3306- MYSQL_SERVICE_USER=root- MYSQL_SERVICE_PASSWORD=root- MYSQL_SERVICE_DB_NAME=nacos_configvolumes:- ./logs:/home/nacos/logs#- ./conf:/home/nacos/confnetworks:# 网络配置继承已有的docker网桥other_network:external:name: zjnetwork
如果要让微服务各模块的服务和配置注册地址固定,无须随着ip的变化而频繁调整配置
需要调整如下信息,很重要:
- hostname: nacos210
- PREFER_HOST_MODE=hostname
- 能正常使用的要求:需要导入nacos基础表数据以及开放以上3个端口信息
2.docker自定义网络环境设置
需要特别注意:
如果存在多个应用,且多个应用之间有数据交互,需要配置到同一网络下
- 首先配置docker自定义网络
docker network create --driver=bridge zjnetwork
- 查看当前docker的所有网络信息
docker network ls
- 查看某一网络的详细信息
docker network inspect zjnetwork
下图展示的是此docker网络下有多个连接信息,网关为172.18.0.1
3.各个微服务注册配置写法
# Spring
spring:application:# 应用名称name: test-reportprofiles:# 环境配置active: devcloud:nacos:discovery:# 服务注册地址server-addr: nacos210:8848config:# 配置中心地址nacos210server-addr: nacos210:8848# 配置文件格式file-extension: yml#### 支持共享多个配置#### 配合@RefreshScope注解,可以解决nacos动态刷新配置问题shared-configs[0]:data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}refresh: trueshared-configs[1]:data-id: service-custom-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}refresh: true
注意:
服务注册和配置中心的地址均使用的是docker-compose文件中的hostname属性的值。
4.访问并查看服务注册信息
通过ip:8848/nacos即可访问,默认的登录账号密码均为nacos
如果在安装配置过程中遇到问题,可以实时关注nacos的启动日志以便于解决。