后端容器 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
就解决了
我的数据库 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