version: '3.8'

services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456  # 设置 MySQL root 用户的密码
      MYSQL_DATABASE: mydb                # 默认创建数据库
#      MYSQL_USER: root                    # 创建一个新用户
#      MYSQL_PASSWORD: 123456       # 新用户的密码
    ports:
      - "3306:3306"  # 映射 MySQL 服务的端口
    volumes:
      - ./mysql_data:/var/lib/mysql  # 将 MySQL 数据库目录挂载到宿主机的 ./mysql_data 目录
    networks:
      - my_network
    command:
      --default-authentication-plugin=mysql_native_password  # MySQL 8.x 需要这个设置

  redis:
    image: redis:7.0-alpine  # 使用 Redis 7.x 版本
    container_name: redis
    ports:
      - "6379:6379"  # 映射 Redis 服务的端口
    networks:
      - my_network
    volumes:
      - ./redis_data:/data  # 将 Redis 数据目录挂载到宿主机的 ./redis_data 目录

  minio:
    image: minio/minio:RELEASE.2025-04-22T22-12-26Z  # 使用 MinIO 最新版本
    container_name: minio
    environment:
      MINIO_ROOT_USER: minioadmin    # 设置 MinIO 根用户
      MINIO_ROOT_PASSWORD: minio123  # 设置 MinIO 密码
    ports:
      - "9000:9000"  # 映射 MinIO Web 界面端口
      - "9001:9001"  # 映射 MinIO 控制台端口
    volumes:
      - ./minio_data:/data  # 将 MinIO 数据目录挂载到宿主机的 ./minio_data 目录
    command: server /data --console-address ":9001"
    networks:
      - my_network

volumes:
  mysql_data: {}  # 可选,定义一个数据卷但不使用
  redis_data: {}  # 可选,定义一个数据卷但不使用
  minio_data: {}  # 可选,定义一个数据卷但不使用

networks:
  my_network:
    driver: bridge

需要先在当前的docker-composer.yum相同的文件夹下面加入mysql_data 、redis_data、minio_data文件夹用于容器挂载到宿主机的目录。

执行命令在当前文件夹下面执行 

docker-compose down  停止、删除容器命令

 docker-compose up -d  这是运行在当前目录下面的docker-composer.yam文件的命令

更多推荐