docker-compose 多容器报错集

1. Nest.js+Mysql 数据库连接失败

报错提示:

bash 复制代码
first-nest-first-nest-1  | [Nest] 1  - 11/10/2023, 1:57:08 AM   ERROR [ExceptionHandler] connect ECONNREFUSED 127.0.0.1:3306
first-nest-first-nest-1  | Error: connect ECONNREFUSED 127.0.0.1:3306
first-nest-first-nest-1  |     at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1595:16)
first-nest-first-nest-1 exited with code 1

docker-compose.yml配置

bash 复制代码
version: '3'
services:
  mysql:
    image: mysql:5.7
    # container_name: first-nest-mysql #自定义容器的名称
    volumes: #挂载当前的data目录到容器默认mysql存储目录
      - ./deploy/mysql/db:/var/lib/mysql
      - ./deploy/mysql/mysqld:/var/run/mysqld
    environment: #环境变量
      - MYSQL_ROOT_PASSWORD=123456 #mysql的root密码
      - MYSQL_DATABASE=love_koa_docker #mysql的初始化数据库
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    ports:
      - "3305:3306"
    #docker 重启后,容器自启动
    restart: always
    networks:
      - app-network

  first-nest:
    depends_on:
      - mysql
    build:
      context: ./
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    # restart: always
    # restart: on-failure # 设置自动重启,这一步必须设置,主要是存在mysql还没有启动完成就启动了node服务
    networks:
      - app-network
    

networks:
  app-network:
    driver: bridge

数据库连接配置

bash 复制代码
{
        type: 'mysql',
        host: 'localhost',
        port: 3306,
        username: 'root',
        password: '123456',
        database: 'love_koa_docker',
        entities: [__dirname + '/../**/*.entity{.ts,.js}'],
        synchronize: true,
        // logging: true,
      }

docker-commpose.yml的mysql将主机的3305端口映射到容器的3306端口,你可以从外部访问localhost:3307 。但是,这并不意味着集装箱正在聆听3307 ; 这个容器其实还在听3306 。 当其他容器试图访问mysql DNS时,它将被转换为内部容器IP,因此您必须连接到3306

建议将mysql的本地3306端口映射到容器3306端口。

数据库连接配置中的host也改成mysql容器的名称。

相关推荐
字节全栈_kYu10 分钟前
FastDFS实用笔记 (Docker 搭建环境 + 整合 SpringBoot)
spring boot·笔记·docker
破-风3 小时前
linux的用法
linux·运维·服务器
大耳朵土土垚6 小时前
【Linux】日志设计模式与实现
linux·运维·设计模式
学问小小谢6 小时前
第26节课:内容安全策略(CSP)—构建安全网页的防御盾
运维·服务器·前端·网络·学习·安全
yaoxin5211237 小时前
第十二章 I 开头的术语
运维·服务器
ProgramHan7 小时前
1992-2025年中国计算机发展状况:服务器、电脑端与移动端的演进
运维·服务器·电脑
马立杰11 小时前
H3CNE-33-BGP
运维·网络·h3cne
Linux运维老纪11 小时前
DNS缓存详解(DNS Cache Detailed Explanation)
计算机网络·缓存·云原生·容器·kubernetes·云计算·运维开发
云空12 小时前
《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
运维·人工智能·web安全·网络安全·开源·网络攻击模型·安全威胁分析
没有名字的小羊12 小时前
Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)
运维·网络·安全