一、安装minio
1.1 拉去ARM镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_minio:latest
1.2 拉去x86镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/minio:latest
MinIO 启动脚本 (run_minio.sh)
#!/bin/bash
# 定义变量(可修改部分)
CONTAINER_NAME="minio"
WEB_PORT=10087 # 控制台端口
API_PORT=10088 # API端口
ROOT_USER="minioadmin"
ROOT_PASSWORD="4wt7HI4RNwcODWxm" # 生产环境建议使用密钥管理
DATA_DIR="/data/minio/data"
CONFIG_DIR="/data/minio/config"
IMAGE="registry.cn-hangzhou.aliyuncs.com/qiluo-images/minio:latest"
TIMEZONE="Asia/Shanghai"
# 检查目录结构
prepare_dirs() {
local dirs=("$DATA_DIR" "$CONFIG_DIR")
for dir in "${dirs[@]}"; do
if [ ! -d "$dir" ]; then
echo "创建目录: $dir"
mkdir -p "$dir" || { echo "目录创建失败!"; exit 1; }
chmod -R 755 "$dir" # MinIO 需要特定权限
fi
done
}
# 清理旧容器
clean_old_container() {
if docker ps -a --format '{{.Names}}' | grep -q "^$CONTAINER_NAME$"; then
echo "发现已有容器 [$CONTAINER_NAME],正在清理..."
docker rm -f "$CONTAINER_NAME" || { echo "删除旧容器失败!"; exit 1; }
fi
}
# 启动MinIO
start_minio() {
echo "正在启动 MinIO 对象存储服务..."
docker run -d -it \
--name "$CONTAINER_NAME" \
--privileged=true \
--restart=always \
-p "$WEB_PORT:9000" \
-p "$API_PORT:9001" \
-e "MINIO_ROOT_USER=$ROOT_USER" \
-e "MINIO_ROOT_PASSWORD=$ROOT_PASSWORD" \
-e "TZ=$TIMEZONE" \
-v "$DATA_DIR:/data" \
-v "$CONFIG_DIR:/root/.minio" \
--log-driver local \
--log-opt max-size=10m \ # 限制日志大小
"$IMAGE" \
server /data \
--console-address ":9001" \
--address ":9000"
if [ $? -ne 0 ]; then
echo "MinIO 启动失败!"
exit 1
fi
}
# 验证服务状态
verify_service() {
echo "等待服务初始化(10秒)..."
sleep 10
if docker logs "$CONTAINER_NAME" 2>&1 | grep -q "API"; then
echo "--------------------------------------------------"
echo "MinIO 启动成功!"
echo "控制台地址: http://$(hostname -I | awk '{print $1}'):$WEB_PORT"
echo "API地址: http://$(hostname -I | awk '{print $1}'):$API_PORT"
echo "管理员账号: $ROOT_USER"
echo "管理员密码: $ROOT_PASSWORD"
echo "数据目录: $DATA_DIR"
echo "配置目录: $CONFIG_DIR"
echo "时区配置: $TIMEZONE"
echo "日志查看: docker logs -f $CONTAINER_NAME"
else
echo "MinIO 服务未正常启动!检查日志: docker logs $CONTAINER_NAME"
exit 1
fi
}
# 主流程
prepare_dirs
clean_old_container
start_minio
verify_service
保存脚本:将内容保存为 run_minio.sh
赋予执行权限:
chmod +x run_minio.sh
运行脚本:
./run_minio.sh
密码安全管理:
# 使用Docker secrets管理密码
echo "4wt7HI4RNwcODWxm" > minio_pass.txt
docker secret create minio_root_pass minio_pass.txt
rm minio_pass.txt
# 然后在启动命令中替换为:
# --env-file MINIO_ROOT_PASSWORD_FILE=/run/secrets/minio_root_pass
MinIO 对象存储服务访问说明
- 基础信息
镜像版本 registry.cn-hangzhou.aliyuncs.com/qiluo-images/minio:latest - 访问地址
Web控制台 http://<服务器IP>:10087 10087 图形化管理界面
API接口 http://<服务器IP>:10088 10088 应用程序调用 - 认证信息
管理员账号 minioadmin
管理员密码 4wt7HI4RNwcODWxm - 数据存储路径
目录类型 宿主机路径 容器内路径
数据目录 /data/minio/data /data
配置目录 /data/minio/config /root/.minio - 常用操作命令
# 查看实时日志
docker logs -f minio
# 进入容器调试
docker exec -it minio /bin/sh
# 重启服务
docker restart minio
# 空间使用情况
docker exec minio mc du -h /data