目录
1、安装docer
2、运行以下命令拉取MinIO的Docker镜像
3、检查当前所有Docker下载的镜像
4、创建目录
5、创建Minio容器并运行
6、SDK操作
FileUploader.java
1、安装docer
参考这篇:Linux安装Docker
2、运行以下命令拉取MinIO的Docker镜像
docker pull minio/minio
默认拉取最新版本的镜像
docker pull minio/minio:RELEASE.2022-06-20T23-13-45Z.fips 下载指定版本的Minio镜像 (xxx指具体版本号)
root@vims:~# docker pull minio/minio
Using default tag: latestlatest: Pulling from minio/minio
33a6235aa44d: Pull complete
2a8ebf082d9f: Pull complete
c7e616c20e34: Pull complete
700d74ff97a3: Pull complete
5732c23d1fd9: Pull complete
b1abbd634381: Pull complete
21574c930590: Pull complete
816077889e53: Pull complete
230293eed526: Pull complete
b16ee0f758f1: Pull complete
Digest: sha256:640c22768ed5dbc92eacc14502a1b06a1c708fa60431345c78dfc22917062e93
Status: Downloaded newer image for minio/minio:latest
3、检查当前所有Docker下载的镜像
docker images
root@vims:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
minio/minio latest 4ab91b236c0e 2 days ago 180MB
hello-world latest d2c94e258dcb 21 months ago 13.3kB
4、创建目录
mkdir -p /home/minio/config
mkdir -p /home/minio/data
一个用来存放配置,一个用来存储上传文件的目录
启动前需要先创建Minio外部挂载的配置文件( /home/minio/config),和存储上传文件的目录( /home/minio/data)
5、创建Minio容器并运行
多行模式
docker run -p 9000:9000 -p 9090:9091 \--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 ":9001"
MINIO_ROOT_USER=minioadmin,这个参数是指定登录时的用户名为minioadmin,
MINIO_ROOT_PASSWORD=minioadmin,这个参数是指定登录时的密码为minioadmin,
下面是对这个命令的详细解释:
docker run:这是Docker命令行工具用来运行一个新容器的命令。
--name minio:这个参数为容器指定了一个名称,这里名称被设置为minio。使用名称可以更方便地管理容器。
-p 9000:9000:这个参数将容器内的9000端口映射到宿主机的9000端口。MinIO服务默认使用9000端口提供API服务。
-p 9090:9090:这个参数将容器内的9090端口映射到宿主机的9090端口。这是MinIO的控制台(Console)端口,用于访问MinIO的图形用户界面。
-d:这个参数告诉Docker以“detached”模式运行容器,即在后台运行。
-e "MINIO_ROOT_USER=minioadmin":设置环境变量MINIO_ROOT_USER,这是访问MinIO服务的用户名称,这里设置为minioadmin。
-e "MINIO_ROOT_PASSWORD=minioadmin":设置环境变量MINIO_ROOT_PASSWORD,这是访问MinIO服务的用户密码,这里设置为minioadmin。
-v /home/minio/data:/data:这个参数将宿主机的目录//home/minio/data挂载到容器的/data目录。MinIO会将所有数据存储在这个目录。
-v /home/minio/config:/root/.minio:这个参数将宿主机的目录//home/minio/config挂载到容器的/root/.minio目录。这个目录用于存储MinIO的配置文件和数据。
minio/minio:这是要运行的Docker镜像的名称,这里使用的是官方发布的MinIO镜像。
server /data:这是传递给MinIO程序的命令行参数,告诉MinIO以服务器模式运行,并且使用/data目录作为其数据存储位置。
--console-address ":9090":这个参数指定MinIO控制台服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9090端口。
--address ":9001":这个参数指定MinIO API服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9001端口。
root@vims:/home/minio# docker run -p 9000:9000 -p 9090:9091 \ > --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 ":9001" WARNING: Published ports are discarded when using host network mode c54dd65a3855552ded53416963226a1e0ae7283613b072d17f77e8fab634bc13 root@vims:/home/minio# root@vims:/home/minio# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c54dd65a3855 minio/minio "/usr/bin/docker-ent…" 19 seconds ago Up 18 seconds minio
6、 访问web界面
容器启动之后,就可以通过访问http://192.168.200.128:9091来访问MinIO的Web界面,输入刚才设置的账号和密码进行登录。(我的虚拟机ip是192.168.200.128,这里输入自己的虚拟机ip即可)账号:minioadmin
密码:minioadmin
1、创建用户(点击identity->users->createUser)
2、创建组(groups->create Group)3、创建accessKeys(Access Keys->create access key)
填写 Access key, Secret key
点击DownLoad for import
文件内容如下,保存文件,SDK操作文件的API需要用到
{
"url":"http://192.168.96.92:9090/api/v1/service-account-credentials",
"accessKey":"124578",
"secretKey":"vVaIqz8p42kBB9ePgcO4eeE6D4RveXZZJuP5mGoh",
"api":"s3v4","
path":"auto"
}
4、创建桶(Object Browser->Create Bucket)
填写 Buckets Name,点击Create Buclet
上传文件
6、SDK操作
官方文档:Software Development Kits (SDK) — MinIO Object Storage for Linux
java文档
FileUploader.java
import io.minio.BucketExistsArgs; import io.minio.MakeBucketArgs; import io.minio.MinioClient; import io.minio.UploadObjectArgs; import io.minio.errors.MinioException; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException;public class FileUploader {public static void main(String[] args)throws IOException, NoSuchAlgorithmException, InvalidKeyException {try {// Create a minioClient with the MinIO server playground, its access key and secret key.MinioClient minioClient =MinioClient.builder().endpoint("https://play.min.io").credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG").build();// Make 'asiatrip' bucket if not exist.boolean found =minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build());if (!found) {// Make a new bucket called 'asiatrip'.minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());} else {System.out.println("Bucket 'asiatrip' already exists.");}// Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket// 'asiatrip'.minioClient.uploadObject(UploadObjectArgs.builder().bucket("asiatrip").object("asiaphotos-2015.zip").filename("/home/user/Photos/asiaphotos.zip").build());System.out.println("'/home/user/Photos/asiaphotos.zip' is successfully uploaded as "+ "object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");} catch (MinioException e) {System.out.println("Error occurred: " + e);System.out.println("HTTP trace: " + e.httpTrace());}} }
Java Quickstart Guide — MinIO Object Storage for Linux
github
https://github.com/minio/minio-java
参考:官网:MinIO Object Storage for Container — MinIO Object Storage for Container
参考:Docker 搭建 Minio 容器 (完整详细版)_docker minio-CSDN博客
参考:https://blog.csdn.net/BThinker/article/details/125412751
参考:https://blog.csdn.net/Keep__Me/article/details/135999640
参考:Docker部署Minio(详细步骤)_minio docker部署-CSDN博客