创建目录:
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
启动前要先检查一下有没缺少配置文件、镜像加速器配置是否正常,拉取不到镜像先看前一篇:
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 正常。