问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Docker 安装并测试 MinIO

创作时间:
作者:
@小白创作中心

Docker 安装并测试 MinIO

引用
CSDN
1.
https://blog.csdn.net/weixin_45100444/article/details/139261852

Docker 安装 MinIO

1. 下载 MinIO

docker pull minio/minio

2. 检查当前下载的所有镜像

docker images

3. 创建目录

(1)存放配置

mkdir -p /usr/myapp/minio/config

(2)存储上传文件的目录

mkdir -p /usr/myapp/minio/data

4. 创建 MinIO 容器并运行

docker run -d \
--name minio \
--restart=always \
-p 9000:9000 \
-p 9001:9001 \
--privileged=true \
-e "MINIO_ROOT_USER=maple" \
-e "MINIO_ROOT_PASSWORD=qwe123..." \
-v /usr/myapp/minio/data:/data \
-v /usr/myapp/minio/config:/root/.minio \
minio/minio server \
--console-address ":9000" \
--address ":9001" /data

第一个 -p 9000:9000 是宿主机(物理机)端口号;第二个 -p 9001:9001 是容器内的端口号。目的是为了让外部访问容器内的服务时,可以通过宿主机的端口进行访问。

MINIO_ACCESS_KEY:账号(长度 ≥ 5 位)
MINIO_SECRET_KEY:密码(长度 ≥ 8 位)

5. 测试 MinIO 是否安装成功

虚拟机地址 + 端口号(9000)
http://192.168.101.129:9000/

6. 登录并测试 MinIO

(1)创建一个 Bucket

这里命名的名字,不要太复杂,因为上传文件的时候用得到。

(2)创建一个 Access Key

点击create

复制它俩 Access Key 与 Secret Key,把它们复制进记事本里,等会儿测试的时候需要用到它俩

(3)开始编写测试文件

新建一个 Maven 项目,因为需要导入 Maven 依赖,如下是 pom.xml

<dependencies>
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>4.9.0</version>
    </dependency>
    <dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>8.4.2</version>
        <exclusions>
            <exclusion>
                <artifactId>okhttp</artifactId>
                <groupId>com.squareup.okhttp3</groupId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

以下是 Java 代码(只需要一个 main 方法就够了):

package net.ibp;
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("http://192.168.101.129:9001")//这里的ip和端口就是你访问minio的ip,端口号是刚才安装minio时配置的 9001,而并非物理机访问的端口号
                            .credentials("U4J107ZkgoLxreaxs9hT", "fUGpLNKhKEMnPuzftCF4mTslK6CIYFJ6m74nxxWu")//这里的accessKey和secretKey就是我刚才让你复制保存的东西
                            .build();
            // Make 'photos' bucket if not exist.
            boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("photos").build());//这里的photos就是让你刚才新建Bucket时的名字,让你不要起复杂的原因就在这里
            if (!found) {
                // Make a new bucket called 'photos'.
                minioClient.makeBucket(MakeBucketArgs.builder().bucket("photos").build());//这里也是桶(Bucket)的名字
            } else {
                System.out.println("Bucket 'photos' already exists.");//这里也是桶的名字
            }
            // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
            // 'asiatrip'.
            minioClient.uploadObject(
                    UploadObjectArgs.builder()
                            .bucket("photos")//这里也是桶的名字
                            .object("flower.png")//这里是要上传文件的名字
                            .filename("E:\\Maple\\Pictures\\Saved Pictures\\flower.png")//上传的文件的路径
                            .build());
            System.out.println("'E:\\Maple\\Pictures\\Saved Pictures\\flower.png' is successfully uploaded as " + "object 'flower.png' to bucket 'photos'.");//这里的路径名、文件名和桶的名字别忘了改成你自己的
        } catch (MinioException e) {
            System.out.println("Error occurred: " + e);
            System.out.println("HTTP trace: " + e.httpTrace());
        }
    }
}

(4)上传成功

(5)在 MinIO 中查看

进去之后点击刷新(refresh)

至此结束!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号