后端容器 ip 无法使用 docker 连接到数据库 mysql

Backend container ip unable to connect to the database mysql using docker

我的数据库 IP 是 172.21.0.2,后端是 172.21.0.3。我是docker的菜鸟,你能给我解释一下为什么后端容器无法连接到数据库吗?非常感谢。

错误信息:

这是我的docker文件:

    FROM node:15.4

    WORKDIR /app
    COPY package.json . 
    RUN npm install
    COPY . . 

    CMD npm run start:dev

docker-compose.yml 文件:

    version: '3.9'
    services:
      backend:
        build: .
        ports:
         - 8000:3000
        volumes: 
         - .:/app
        depends_on:
         - db

     db:
      image: mysql:5.7.22
      restart: always
      environment:
        MYSQL_DATABASE: admin
        MYSQL_USER: root
        MYSQL_PASSWORD: root
        MYSQL_ROOT_PASSWORD: root
        volumes: 
         - .dbdata:/var/lib/mysql
        ports:
         - 33066:3306

和app.module.ts:

@Module({
   imports: [UserModule, TypeOrmModule.forRoot({
   type: 'mysql',
   host: 'db',
   port: 3306,
   username: 'root',
   password: 'root',
   database: 'admin',
   autoLoadEntities: true,
   synchronize: true,
  }), AuthModule],
 controllers: [AppController],
 providers: [AppService],
})
export class AppModule {}

事实证明仅 delete/remove db volumes: - .dbdata:/var/lib/mysql

就解决了