Docker 搭建 Minio 容器 (完整详细版) - CharyGao - 博客园


Minio 是一个基于 Apache License v2.0 开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据。 

例如图片、视频、日志文件、备份数据和容器 / 虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。

Docker 如果想安装软件,必须先到 Docker 镜像仓库下载镜像。

Docker 官方镜像 

1、寻找 Minio 镜像  

  2、下载 Minio 镜像

命令 描述
docker pull minio/minio 下载最新版 Minio 镜像 (其实此命令就等同于 : docker pull minio/minio:latest)
docker pull minio/minio:RELEASE.2022-06-20T23-13-45Z.fips 下载指定版本的 Minio 镜像 (xxx 指具体版本号)

 检查当前所有 Docker 下载的镜像

docker images

 3、创建目录

一个用来存放配置,一个用来存储上传文件的目录

启动前需要先创建 Minio 外部挂载的配置文件( /home/minio/config), 和存储上传文件的目录( /home/minio/data)

 
  1. mkdir -p /home/minio/config

  2. mkdir -p /home/minio/data

 

 4、创建 Minio 容器并运行

多行模式 

 
  1. docker run -p 9000:9000 -p 9090:9090 \

  2. -e "MINIO_ACCESS_KEY=minioadmin" \

  3. -e "MINIO_SECRET_KEY=minioadmin" \

  4. -v /home/minio/data:/data \

  5. -v /home/minio/config:/root/.minio \

  6. /data --console-address ":9090" -address ":9000"

 

单行模式 

docker run -p 9000:9000 -p 9090:9090      --net=host      --name minio      -d --restart=always      -e "MINIO_ACCESS_KEY=minioadmin"      -e "MINIO_SECRET_KEY=minioadmin"      -v /home/minio/data:/data      -v /home/minio/config:/root/.minio      minio/minio server      /data --console-address ":9090" -address ":9000"

9090 端口指的是 minio 的客户端端口

MINIO_ACCESS_KEY :账号

MINIO_SECRET_KEY :密码(账号长度必须大于等于 5,密码长度必须大于等于 8 位)

 5、访问操作

访问:http://192.168.124.132:9090/login 用户名:密码  minioadmin:minioadmin

 创建用户

 

创建组

创建 accessKey 和 secretKey 

 点击下载

 文件内容如下,保存文件,SDK 操作文件的 API 需要用到

{"url":"http://192.168.124.132:9000","accessKey":"XO1JDovW2FTmGaBb","secretKey":"uG6wMfylUnOVH5WzwxqnldOWw2dMshNX","api":"s3v4","path":"auto"}

创建 Bucket

上传文件

 

 6、SDK 操作

官方文档:https://docs.min.io/docs/

 javaSDK:https://docs.min.io/docs/java-client-quickstart-guide.html

 maven 依赖

 
  1. <groupId>com.squareup.okhttp3</groupId>

  2. <artifactId>okhttp</artifactId>

  3. <groupId>io.minio</groupId>

  4. <artifactId>minio</artifactId>

  5. <artifactId>okhttp</artifactId>

  6. <groupId>com.squareup.okhttp3</groupId>

 

测试文件上传 

 
  1. import io.minio.BucketExistsArgs;

  2. import io.minio.MakeBucketArgs;

  3. import io.minio.MinioClient;

  4. import io.minio.UploadObjectArgs;

  5. import io.minio.errors.MinioException;

  6. import java.io.IOException;

  7. import java.security.InvalidKeyException;

  8. import java.security.NoSuchAlgorithmException;

  9. public class FileUploader {

  10. public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException {

  11. MinioClient minioClient =

  12. .endpoint("http://192.168.124.132:9000")

  13. .credentials("XO1JDovW2FTmGaBb", "uG6wMfylUnOVH5WzwxqnldOWw2dMshNX")

  14. boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("public").build());

  15. minioClient.makeBucket(MakeBucketArgs.builder().bucket("public").build());

  16. System.out.println("Bucket 'public' already exists.");

  17. minioClient.uploadObject(

  18. UploadObjectArgs.builder()

  19. .object("credentials.json")

  20. .filename("C:/Users/lai.huanxiong/Downloads/credentials.json")

  21. System.out.println("'C:/Users/lai.huanxiong/Downloads/credentials.json' is successfully uploaded as " + "object 'credentials.json' to bucket 'public'.");

  22. } catch (MinioException e) {

  23. System.out.println("Error occurred: " + e);

  24. System.out.println("HTTP trace: " + e.httpTrace());

 

 文件上传成功展示

至此,Docker 搭建 Minio 服务器和简单操作完成!!!

Docker 安装 (完整详细版)

Docker 日常命令大全 (完整详细版)

Docker 搭建 Minio 容器 (完整详细版)_docker minio-CSDN 博客


hunterzuo 2025年11月11日 11:21 收藏文档