创建目录:
mkdir -p /opt/infra cd /opt/infra mkdir -p mysql/{data,conf,logs,init} mkdir -p redis/{data,conf,logs} mkdir -p minio/{data,config} mkdir -p jdk21创建 Docker Compose:vim /opt/infra/docker-compose.yml
services: # ========================= # MySQL 8.4 LTS # ========================= mysql: image: mysql:8.4.8 container_name: mysql84 restart: unless-stopped environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: "Chan*****************" MYSQL_DATABASE: "app_***" MYSQL_USER: "app_****" MYSQL_PASSWORD: "Chan*****************" ports: - "3306:3306" volumes: - /opt/infra/mysql/data:/var/lib/mysql - /opt/infra/mysql/conf:/etc/mysql/conf.d - /opt/infra/mysql/logs:/var/log/mysql - /opt/infra/mysql/init:/docker-entrypoint-initdb.d command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_0900_ai_ci - --default-time-zone=+08:00 healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-pChan*****************" ] interval: 10s timeout: 5s retries: 10 networks: - infra-network # ========================= # Redis 7.4.x # ========================= redis: image: redis:7.4-bookworm container_name: redis74 restart: unless-stopped environment: TZ: Asia/Shanghai ports: - "6379:6379" volumes: - /opt/infra/redis/data:/data - /opt/infra/redis/conf:/usr/local/etc/redis command: - redis-server - /usr/local/etc/redis/redis.conf healthcheck: test: [ "CMD", "redis-cli", "-a", "Chan*****************", "ping" ] interval: 10s timeout: 5s retries: 10 networks: - infra-network # ========================= # MinIO # ========================= minio: image: minio/minio:RELEASE.2025-09-07T16-13-09Z container_name: minio restart: unless-stopped environment: TZ: Asia/Shanghai MINIO_ROOT_USER: "minioad*********" MINIO_ROOT_PASSWORD: "Chan*****************" ports: - "9000:9000" - "9001:9001" volumes: - /opt/infra/minio/data:/data - /opt/infra/minio/config:/root/.minio command: server /data --console-address ":9001" healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ] interval: 30s timeout: 20s retries: 3 networks: - infra-network networks: infra-network: name: infra-network driver: bridge启动前要先检查一下有没缺少配置文件、镜像加速器配置是否正常,拉取不到镜像先看前一篇:
https://blog.csdn.net/my_futrue/article/details/163443658?sharetype=blogdetail&sharerId=163443658&sharerefer=PC&sharesource=my_futrue&spm=1011.2480.3001.8118https://blog.csdn.net/my_futrue/article/details/163443658?sharetype=blogdetail&sharerId=163443658&sharerefer=PC&sharesource=my_futrue&spm=1011.2480.3001.8118mkdir -p /opt/infra/redis/conf
vim /opt/infra/redis/conf/redis.conf
bind 0.0.0.0 protected-mode yes port 6379 requirepass ChangeThisRedisPassword_2026! appendonly yes appendfsync everysec save 900 1 save 300 10 save 60 10000 maxmemory 1gb maxmemory-policy allkeys-lru loglevel notice daemonize no启动 MySQL、Redis、MinIO:
进入目录:
cd /opt/infra
先检查配置:
docker compose config
如果没有错误,启动:
docker compose up -d
查看状态:
docker compose ps
查看日志:
docker compose logs -f mysql
docker compose logs -f redis
docker compose logs -f minio
单独停止:docker compose stop redis
单独启动:docker compose up -d redis
验证 MySQL进入容器:
docker exec -it mysql84 mysql -uroot -p
输入密码:
Chan*****************
验证 Redis执行:
docker exec -it redis74 redis-cli
认证:
AUTH Chan*****************
测试:
PING
返回:
PONG
查看版本:
docker exec -it redis74 redis-cli \
-a Chan***************** \
INFO server
验证minion浏览器打开:
http://192.168.**.**:9001登录:
用户名: minioadmin 密码: Chan*****************创建一个 Bucket,例如:
auction如果能创建,说明 MinIO 正常。