docker部署nacos配置mysql时,提示No DataSource set

简介

此前通过docker部署nacos时,使用一个docker-compose.yaml文件同时启动,相关.env文件正确配置即可直接使用。这次在服务器上已经有了一个mysql容器,所以就将nacos中数据源配置为了已存在的mysql容器,结果在启动时出现了No DataSource set错误

原因

两个容器均通过docker-compose部署

两个容器分别启动,如果不配置networds会自动创建一个默认网络,就早造成了两个容器,不在同一个网络下,就会出现No DataSource set错误

解决

使用命令docker network create xxxx提前创建一个网络,并在两个docker-compose.yaml文件中指定networks并配置为外部网络

  • 注意:
    • nacos配置文件中mysql的IP地址应为容器的ip的地址;
    • 防火墙对应端口要打开
    • 加入.bashrc中可直接使用查询容器的ip
function docker_ip() {
    sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1
}


function docker_composer_ip(){
   docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $1
}
  • nacos.env
PREFER_HOST_MODE=172.22.0.2 # 容器ip
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=mysql
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=root
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=UTC
  • docker-compose-mysql.yaml
version: "2.2"
services: 
  mysql:
    restart: always
    image: mysql:5.7.16
    container_name: mysql-server
    volumes:
      - /data/mysql/db:/var/lib/mysql
      - /data/mysql/logs:/var/log/mysql
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
    networks:
      - xxxx
networks:
  xxxx:
    external: true

  • docker-compose-nacos.yaml
version: "2"
services:
  nacos:
    image: nacos/nacos-server:2.0.3
    container_name: nacos
    env_file:
      - ./env/nacos-standlone-mysql.env
    volumes:
      - ./standalone-logs/:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9555:9555"
    restart: always
    networks:
      - xxxx
networks:
  xxxx:
    external: true

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Docker部署Nacos配置MySQL,可以按照以下步骤进行操作: 1. 拉取Nacos的官方镜像,如MySQL 5.7版本的:docker pull nacos/nacos-server:1.3.1 。 2. 确保本机已安装了Git、DockerDocker Compose。 3. 拉取一个包含修改后支持MySQL 8的Nacos版本的文件,可以使用命令:git clone https://gitee.com/korov/Docker.git 。 4. 创建一个logs目录和一个init.d目录,可以使用命令:mkdir -p /mydata/nacos/logs/ 和 mkdir -p /mydata/nacos/init.d/ 。 5. 配置数据库,创建一个名为nacos_config的数据库,可以使用以下SQL文件:https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql。 6. 进入Nacos容器内,可以使用命令:docker exec -it nacos-server /bin/bash。 通过以上步骤,你可以成功地在Docker部署Nacos配置MySQL。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [docker安装Nacos配置MySQL](https://blog.csdn.net/wts563540/article/details/126450620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Docker Compose部署Nacos集群 支持MySQL8](https://download.csdn.net/download/weixin_38609089/14886741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值