Docker?部署?Minio?對(duì)象存儲(chǔ)服務(wù)器的過程詳解
Github
https://github.com/minio/minio
官網(wǎng)
文檔
https://www.minio.org.cn/docs/minio/kubernetes/upstream/
簡介
Minio是一個(gè)開源的對(duì)象存儲(chǔ)服務(wù)器,可以存儲(chǔ)大量的非結(jié)構(gòu)化數(shù)據(jù),例如圖片、視頻、日志文件、備份等。Minio是一個(gè)輕量級(jí)的應(yīng)用程序,可以在各種環(huán)境中運(yùn)行,包括公共云、私有云和混合云。Minio提供了一個(gè)簡單的REST API,可以輕松地將數(shù)據(jù)存儲(chǔ)到Minio服務(wù)器中,并從Minio服務(wù)器中檢索數(shù)據(jù)。Minio還提供了一些高級(jí)功能,例如數(shù)據(jù)加密、訪問控制、事件通知和版本控制,可以幫助用戶更好地管理和保護(hù)數(shù)據(jù)。
Minio的應(yīng)用場景非常廣泛,可以用于各種不同的用例。例如,Minio可以用于構(gòu)建云原生應(yīng)用程序,存儲(chǔ)容器鏡像和日志文件。Minio還可以用于構(gòu)建數(shù)據(jù)湖,存儲(chǔ)和管理大量的非結(jié)構(gòu)化數(shù)據(jù)。此外,Minio還可以用于構(gòu)建備份和災(zāi)難恢復(fù)解決方案,以及存儲(chǔ)和管理多媒體內(nèi)容??傊琈inio是一個(gè)非常靈活和強(qiáng)大的對(duì)象存儲(chǔ)服務(wù)器,可以滿足各種不同的存儲(chǔ)需求。
docker
https://min.io/download?license=agpl&platform=docker
鏡像:https://hub.docker.com/r/minio/minio
docker pull minio/minio:latest
docker run --name minio -p 9000:9000 -p 9001:9001 \ minio/minio:latest server /data --console-address ":9001"
查看 server 可選項(xiàng)
docker exec -it minio minio server --help
docker-compose.yml
# 創(chuàng)建縮主機(jī)目錄 mkdir minio && cd minio mkdir data certs logs
services:
minio:
image: minio/minio:latest
container_name: minio
restart: always
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: "admin"
MINIO_ROOT_PASSWORD: "AmtkaWV3a3Bsb2lkd"
volumes:
- ./minio/data:/data
# TLS/SSL 證書目錄
- ./minio/certs:/root/.minio/certs
- ./minio/logs:/var/log/minio
command: ['server', '/data', '--log-dir', '/var/log/minio', '--console-address', ':9001']docker-compose up -d minio
http://192.168.0.60:9001/login
注意: 訪問縮主機(jī)IP地址,而非 127.0.0.1 地址。

mc 客戶端
https://min.io/docs/minio/linux/reference/minio-mc.html
# Mac brew install minio/stable/mc mc -h
快速身份驗(yàn)證并連接到MinIO
mc alias set local http://192.168.0.60:9000 admin 'AmtkaWV3a3Bsb2lkd' mc admin info local

mc 基礎(chǔ)命令
創(chuàng)建一個(gè)新的存儲(chǔ)桶
mc mb local/ability-bucket
列出存儲(chǔ)桶或?qū)ο?/p>
mc ls local
刪除一個(gè)存儲(chǔ)桶
mc rb local/ability-bucket
復(fù)制對(duì)象
mc cp ./object.txt local/ability-bucket/

刪除對(duì)象
mc rm local/ability-bucket/object.txt
在存儲(chǔ)桶中查找對(duì)象
mc find local/ability-bucket/ --name "*.txt"

同步本地目錄和遠(yuǎn)程存儲(chǔ)桶
mc mirror ./local/dir local/ability-bucket
顯示對(duì)象內(nèi)容
mc cat local/ability-bucket/object.txt
生成一個(gè)臨時(shí)共享鏈接
mc share download local/ability-bucket/object.txt
Golang 示例
官方示例:https://minio.org.cn/docs/minio/linux/developers/minio-drivers.html
創(chuàng)建 test 賬號(hào)密鑰



文件上傳示例
此示例代碼連接到對(duì)象存儲(chǔ)服務(wù)器,創(chuàng)建一個(gè)bucket,并將文件上傳到bucket。
go get github.com/minio/minio-go/v7
package main
import (
"context"
"log"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func main() {
ctx := context.Background()
endpoint := "192.168.0.60:9000"
accessKeyID := "cyv75namOYc38Lo0Colk"
secretAccessKey := "ve4qri1acmgfiQgpIsAfgvsRSErdukE1ntWTjD0H"
useSSL := false
// Initialize minio client object.
minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
if err != nil {
log.Fatalln(err)
}
// Make a new bucket called testbucket.
bucketName := "testbucket"
location := "us-east-1"
err = minioClient.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{Region: location})
if err != nil {
// Check to see if we already own this bucket (which happens if you run this twice)
exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
if errBucketExists == nil && exists {
log.Printf("We already own %s\n", bucketName)
} else {
log.Fatalln(err)
}
} else {
log.Printf("Successfully created %s\n", bucketName)
}
// Upload the test file
// Change the value of filePath if the file is in another location
objectName := "testdata"
filePath := "./testdata/testdata"
contentType := "application/octet-stream"
// Upload the test file with FPutObject
info, err := minioClient.FPutObject(ctx, bucketName, objectName, filePath, minio.PutObjectOptions{ContentType: contentType})
if err != nil {
log.Fatalln(err)
}
log.Printf("Successfully uploaded %s of size %d\n", objectName, info.Size)
}輸出
2024/07/02 16:33:16 Successfully created testbucket
2024/07/02 16:33:16 Successfully uploaded testdata of size 14
Minio 控制臺(tái)可以查看到剛創(chuàng)建的 testbucket。


到此這篇關(guān)于Docker 部署 Minio 對(duì)象存儲(chǔ)服務(wù)器的過程詳解的文章就介紹到這了,更多相關(guān)Docker 部署 Minio存儲(chǔ)服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker發(fā)布鏡像到DockerHub與阿里云容器
本文主要介紹了Docker發(fā)布鏡像到DockerHub與阿里云容器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
docker和k8s中實(shí)現(xiàn)批量刪除不要的資源
文章介紹了在Docker和K8s中批量刪除不是running狀態(tài)的容器或pod的四種方法,包括根據(jù)容器狀態(tài)刪除Exited狀態(tài)的容器、顯示所有容器并過濾出Exited狀態(tài)的容器、刪除所有未運(yùn)行的容器以及使用docker containers prune命令刪除孤立的容器2025-12-12
基于Docker部署GitLab環(huán)境搭建的方法步驟
這篇文章主要介紹了基于Docker部署GitLab環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
使用Docker搭建Picsur圖床服務(wù)的實(shí)現(xiàn)
本文介紹如何在騰訊云輕量應(yīng)用服務(wù)器通過Docker部署Picsur圖床服務(wù),文中通過圖文示例步驟介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
使用Docker?Compose搭建部署ElasticSearch的配置過程
Elasticsearch使用的是一種名為倒排索引的數(shù)據(jù)結(jié)構(gòu),這一結(jié)構(gòu)的設(shè)計(jì)可以允許十分快速地進(jìn)行全文本搜索,本文重點(diǎn)給大家介紹使用Docker?Compose搭建部署ElasticSearch的配置過程,感興趣的朋友一起看看吧2022-02-02
Docker Compose 兩種安裝與使用方案(適用于 Docker 19.0
本文以Docker 19.03.15(Ubuntu 20.04)為例,詳細(xì)對(duì)比這兩種方式的安裝、使用和特點(diǎn),幫助你快速選擇適合自己的方案,感興趣的朋友跟隨小編一起看看吧2026-01-01
Docker?/?K8s環(huán)境下的Dubbo服務(wù)部署實(shí)踐教程
Docker和Kubernetes(通常縮寫為k8s)是容器化應(yīng)用程序的兩個(gè)主要工具,這篇文章主要介紹了Docker/K8s環(huán)境下的Dubbo服務(wù)部署的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-04-04
容器搭建nextcloud+onlyoffice+https實(shí)踐
本文介紹了在CentOS8.5上使用Docker搭建個(gè)人網(wǎng)盤應(yīng)用Nextcloud和OnlyOffice的詳細(xì)步驟,包括容器準(zhǔn)備、啟動(dòng)、SSL配置以及在Nextcloud中集成OnlyOffice2026-01-01

