docker 安装nacos,使用自定义mysql

本文详细描述了如何在NacosDocker项目中使用自定义数据库(如MySQL),包括创建数据库、初始化表结构、配置环境变量,以及如何通过docker-compose设置网络连接和处理可能出现的异常,如NoDataSourceSet错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Clone 项目

git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker

使用自定义数据库

  • 创建数据库
    create database nacos_config;
    use nacos_config;
  • 初始化表结构
执行数据库脚本: https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql
  • 修改配置文件
vim env/nacos-standlone-mysql.env
# 修改以下配置:
# mysql host
MYSQL_SERVICE_HOST=本机ip
# 数据库名称, 与上面创建的数据库保持一致
MYSQL_SERVICE_DB_NAME=nacos_config
# 端口号
MYSQL_SERVICE_PORT=3306
# 用户名
MYSQL_SERVICE_USER=root
# 密码
MYSQL_SERVICE_PASSWORD=123456
# Using mysql 5.7:
vim example/standalone-mysql-5.7.yaml
# Using mysql 8: 
vim example/standalone-mysql-8.yaml

删除:services.depends_on 相关配置
删除:services.mysql 相关配置
修改后:
% cat standalone-mysql-8.yaml 
version: "3.8"
services:
  nacos:
    image: nacos/nacos-server:${NACOS_VERSION}
    container_name: nacos-standalone-mysql
    env_file:
      - ../env/nacos-standlone-mysql.env
    volumes:
      - ./standalone-logs/:/home/nacos/logs
    ports:
      - "8848:8848"
      - "9848:9848"
    restart: always

  • 执行
# Using mysql 5.7: 
docker-compose -f example/standalone-mysql-5.7.yaml up
# Using mysql 8: 
docker-compose -f example/standalone-mysql-8.yaml up

mysql配置为容器名:

创建自定义network:

docker network create my-net

将mysql容器加入自定义network:

docker network connect my-net [mysql容器名]

修改配置文件:

vim env/nacos-standlone-mysql.env
修改:MYSQL_SERVICE_HOST 为 [mysql容器名]

修改dockerfile,自定义network:

vim example/standalone-mysql-8.yaml
新增:
networks:
  default:
    external:
      name: my-net

重新执行:

# Using mysql 5.7: 
docker-compose -f example/standalone-mysql-5.7.yaml up
# Using mysql 8: 
docker-compose -f example/standalone-mysql-8.yaml up

异常:

  • No DataSource set
数据库配置有错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值