最近几年随着大数据和人工智能持续大热,容器化安装部署运维已经走进了各个中小公司,也得已让众多开发者能上手实际操作,不过说真心话,“万物皆可容器化”的理念越来越深入人心。
而如何使用docker-compose安装,配置,链接nacos呢?请详细参阅下文。
此文案是基于对docker已经有相当了解的开发工作者来编写的,有其他问题可以私信或者评论噢。
1.nacos安装配置说明docker-compose.yml
在保证网络状态良好的前提下,事先保证数据库可以正常访问且docker网络环境配置正确
version: "3.3"
services:
nacos:
image: nacos/nacos-server:v2.1.0
restart: always
# 各个模块服务注册地址
hostname: nacos210
container_name: nacos210_server
privileged: true
networks:
- other_network
ports:
- 8848:8848
- 9848:9848
- 9849:9849
environment:
# 支持主机名可以使用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_config
volumes:
- ./logs:/home/nacos/logs
#- ./conf:/home/nacos/conf
networks:
# 网络配置继承已有的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-report
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: nacos210:8848
config:
# 配置中心地址nacos210
server-addr: nacos210:8848
# 配置文件格式
file-extension: yml
#### 支持共享多个配置
#### 配合@RefreshScope注解,可以解决nacos动态刷新配置问题
shared-configs[0]:
data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
refresh: true
shared-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的启动日志以便于解决。