You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中数据库显示异常:定义为blue却显示red

问题

我在docker-compose.yaml中定义的数据库名为blue,配置内容如下:

version: '3'
services:

  #PHP Service
  ngxapp:
    build:
      context: .
      dockerfile: Dockerfile
    image: andys
    container_name: ngxapp
    restart: unless-stopped
    tty: true
    environment:
      SERVICE_NAME: ngxapp
      SERVICE_TAGS: dev
    working_dir: /var/www
    volumes:
      - ./:/var/www
      - ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
    networks:
      - app-network

  #Nginx Service
  ngxwebserver:
    image: nginx:alpine
    container_name: ngxwebserver
    restart: unless-stopped
    tty: true
    ports:
      - "8097:80"
      - "4431:443"
    volumes:
      - ./:/var/www
      - ./nginx/conf.d/:/etc/nginx/conf.d/
    networks:
      - app-network

  #MySQL Service
  ngxdb:
    image: mysql:5.7.22
    container_name: ngxdb
    restart: unless-stopped
    tty: true
    ports:
      - "3418:3306"
    environment:
      MYSQL_USER: root
      MYSQL_DATABASE: blue
      MYSQL_ROOT_PASSWORD: password
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - dbdata:/var/lib/mysql/
      - ./mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - app-network

#Docker Networks
networks:
  app-network:
    driver: bridge
#Volumes
volumes:
  dbdata:
    driver: local

从配置文件里能看到数据库是blue,但终端查看数据库时却显示为red。我之前创建过一个定义为red的数据库容器,已经完全删除了,尝试用--build标志重启容器后问题还是没解决,这是什么原因?

原因及解决方法

问题核心是Docker本地卷dbdata未被删除,具体细节和解决步骤如下:

  • MySQL容器首次启动时,会根据环境变量创建初始数据库(也就是你之前的red),并将数据持久化到dbdata卷中。
  • Docker的本地卷默认不会随容器删除而自动清除,旧容器删除后,dbdata卷里依然保留着red数据库的全部数据。
  • 即便修改docker-compose.yaml里的MYSQL_DATABASE为blue,重启容器时,MySQL检测到数据目录已存在(来自dbdata卷),会跳过初始化流程,直接使用旧数据,所以你看到的还是red数据库。

解决步骤:

  1. 停止并删除当前运行的容器:
docker-compose down
  1. 删除存储旧数据的dbdata卷:
# 精准删除目标卷(卷名通常为[项目目录名]_dbdata)
docker volume rm your_project_name_dbdata
# 或者清理所有无关联容器的卷(谨慎操作,会删除所有未被使用的卷)
# docker volume prune
  1. 重新启动容器,MySQL会根据新环境变量创建blue数据库:
docker-compose up -d

内容的提问来源于stack exchange,提问作者cookie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:52:51