Docker持久化搭建MinIO过程
作者:く成哦
这篇文章主要介绍了Docker持久化搭建MinIO过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
一、了解MinIO,MinIO 是什么?
MinIO 是什么?
- 开源、云原生的 对象存储 系统(对标 Amazon S3)。
- 用 Go 编写,单二进制即可运行,支持单机、分布式、容器化多种形态。
- 完全兼容 S3 API,现有 S3 工具(AWS CLI、Terraform、Rclone 等)直接可用。
核心能力速览
维度 | 说明 |
---|---|
性能 | 单机即可做到 GB/s 级吞吐;分布式可水平扩展到上千节点。 |
数据保护 | 纠删码(Erasure Code)实现冗余,可容忍一半节点/磁盘损坏仍不丢数据。 |
安全 | 传输 TLS、静态 AES-256 加密;细粒度 RBAC、LDAP、OAuth 集成。 |
部署形态 | 1. 单机二进制 2. Docker 3. K8s/Helm 4. 分布式裸机集群。 |
最大对象 | 单个对象 5 TB;小文件同样高效。 |
二、搭建MinIO
Docker容器搭建
创建持久化目录
sudo mkdir -p /data/minio/{data,config} sudo chmod -R 777 /data/minio # 避免容器内权限问题
测试拉取一下minio镜像
docker pull minio/minio
启动minio容器(一条指令)
docker run -d \ --name minio \ --restart=always \ -p 9000:9000 \ -p 9001:9001 \ -e "MINIO_ROOT_USER=admin" \ -e "MINIO_ROOT_PASSWORD=SecurePass123" \ -v /data/minio/data:/data \ -v /data/minio/config:/root/.minio \ minio/minio server /data --console-address ":9001"
参数说明:
参数 | 含义 |
---|---|
-d | 后台运行 |
--restart=always | 宿主机重启后自动拉起 |
-p 9000:9000 | API / S3 端口 |
-p 9001:9001 | Web 控制台端口 |
-v /data/minio/data:/data | 对象数据持久化 |
-v /data/minio/config:/root/.minio | 配置文件持久化 |
查看是否运行成功
docker ps
查看minio容器是否启动
访问验证
- 控制台:http://localhost:9001
- S3 API:http://localhost:9000
用户名/密码即上面启动指令里面的 admin / SecurePass123
。
防火墙和服务器开启端口
sudo firewall-cmd --permanent --add-port=9000/tcp sudo firewall-cmd --permanent --add-port=9001/tcp sudo firewall-cmd --reload sudo firewall-cmd --list-ports # 应显示:9000/tcp 9001/tcp
重启 / 升级 / 迁移
重启
docker restart minio
升级镜像
docker pull minio/minio docker rm -f minio # 再执行上面 docker run 命令即可,数据仍在 /data/minio
迁移
直接打包 /data/minio
目录,复制到新机器后挂载即可。
三、常用运维命令
# 查看日志 docker logs -f minio # 进入容器 docker exec -it minio sh # 停止并删除(数据保留) docker rm -f minio
四、总结
通过一条 docker run
命令即可在单机完成 持久化对象存储 搭建:
- 数据、配置全部落盘
/data/minio
,重启/升级/迁移零丢失; - 9000 端口暴露 S3 API,9001 端口提供 Web 控制台;
- 防火墙放行对应端口后即可通过浏览器或任何 S3 工具直接访问。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。