部署minio
cat > docker-compose.yaml <<EOF
#docker-compose.yaml
services:
minio:
image: quay.io/minio/minio:latest
container_name: minio
restart: unless-stopped
ports:
- "9002:9000" # API端口
- "9001:9001" # 控制台端口
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: Xzm7_GTD.com
MINIO_DOMAIN: minio.local
volumes:
- ./data:/data
- ./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
EOF
docker-compose up -d
命令行使用
# 进入容器
docker exec -it minio sh
# 设置别名
mc alias set myminio http://localhost:9000 admin Xzm7_GTD.com
# 创建存储桶
mc mb myminio/my-bucket
# 列出存储桶
mc ls myminio
将桶挂载到本地
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y fuse s3fs
# CentOS/RHEL (需要先安装 EPEL 源)
sudo yum install -y epel-release
sudo yum install -y fuse s3fs
# TencentOS Server
yum -y install s3fs-fuse.x86_64
# 创建存储凭证的文件
echo "你的ACCESS_KEY:你的SECRET_KEY" > ~/.passwd-s3fs # ACCESS_KEY: 登录用户名,SECRET_KEY: 登录密码
# 关键步骤:设置文件权限为 600,否则 s3fs 会拒绝读取
chmod 600 ~/.passwd-s3fs
# 1. 创建一个本地目录作为挂载点
mkdir -p /mnt/minio-bucket
# 2. 执行挂载命令
# 请将 `你的存储桶名` 替换为实际的 bucket 名称
# 请将 `http://127.0.0.1:9000` 替换为你 MinIO 服务器的 API 地址
s3fs 你的存储桶名 /mnt/minio-bucket \
-o passwd_file=~/.passwd-s3fs \
-o url=http://127.0.0.1:9000 \
-o use_path_request_style \
-o stat_cache_expire=15 \
-o enable_noobj_cache \
-o kernel_cache \
-o max_stat_cache_size=2000
# stat_cache_expire=15 文件属性缓存过期时间(秒),到期后会重新从服务端获取 15 秒
# enable_noobj_cache 缓存“文件不存在”的查询结果,减少对服务端的无效查询 开启
# kernel_cache 利用内核页面缓存,提升重复读取的性能 开启
# max_stat_cache_size=2000 最大缓存文件属性数量,防止内存占用过高 2000
#use_path_request_style 参数对于 MinIO 是必须的,它能确保使用正确的请求格式
#你的 MinIO 服务器 API 地址(url)就是你之前部署时映射的 9000 端口
#验证挂载:挂载成功后,你可以通过 df -h 命令看到新的文件系统,或者直接 cd /mnt/minio-bucket 和 ls 来查看桶内的文件
常用命令
# 1. 列出所有桶(最常用)
mc ls myminio/
# 2. 列出桶内文件(包括递归)
mc ls myminio/uat/
mc ls myminio/uat/ --recursive
# 3. 以人类可读格式显示大小
mc ls --human-readable myminio/
# 4. 显示更详细信息(包括版本ID)
mc ls --verbose myminio/uat/
# 5. 只显示桶名(不显示其他信息)
mc ls myminio/ | awk '{print $5}'
评论 (0)