Docker?部署?Minio?對象存儲服務器的過程詳解
Github
https://github.com/minio/minio
官網
文檔
https://www.minio.org.cn/docs/minio/kubernetes/upstream/
簡介
Minio是一個開源的對象存儲服務器,可以存儲大量的非結構化數(shù)據(jù),例如圖片、視頻、日志文件、備份等。Minio是一個輕量級的應用程序,可以在各種環(huán)境中運行,包括公共云、私有云和混合云。Minio提供了一個簡單的REST API,可以輕松地將數(shù)據(jù)存儲到Minio服務器中,并從Minio服務器中檢索數(shù)據(jù)。Minio還提供了一些高級功能,例如數(shù)據(jù)加密、訪問控制、事件通知和版本控制,可以幫助用戶更好地管理和保護數(shù)據(jù)。
Minio的應用場景非常廣泛,可以用于各種不同的用例。例如,Minio可以用于構建云原生應用程序,存儲容器鏡像和日志文件。Minio還可以用于構建數(shù)據(jù)湖,存儲和管理大量的非結構化數(shù)據(jù)。此外,Minio還可以用于構建備份和災難恢復解決方案,以及存儲和管理多媒體內容??傊?,Minio是一個非常靈活和強大的對象存儲服務器,可以滿足各種不同的存儲需求。
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 可選項
docker exec -it minio minio server --help
docker-compose.yml
# 創(chuàng)建縮主機目錄 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
注意: 訪問縮主機IP地址,而非 127.0.0.1 地址。
mc 客戶端
https://min.io/docs/minio/linux/reference/minio-mc.html
# Mac brew install minio/stable/mc mc -h
快速身份驗證并連接到MinIO
mc alias set local http://192.168.0.60:9000 admin 'AmtkaWV3a3Bsb2lkd' mc admin info local
mc 基礎命令
創(chuàng)建一個新的存儲桶
mc mb local/ability-bucket
列出存儲桶或對象
mc ls local
刪除一個存儲桶
mc rb local/ability-bucket
復制對象
mc cp ./object.txt local/ability-bucket/
刪除對象
mc rm local/ability-bucket/object.txt
在存儲桶中查找對象
mc find local/ability-bucket/ --name "*.txt"
同步本地目錄和遠程存儲桶
mc mirror ./local/dir local/ability-bucket
顯示對象內容
mc cat local/ability-bucket/object.txt
生成一個臨時共享鏈接
mc share download local/ability-bucket/object.txt
Golang 示例
官方示例:https://minio.org.cn/docs/minio/linux/developers/minio-drivers.html
創(chuàng)建 test 賬號密鑰
文件上傳示例
此示例代碼連接到對象存儲服務器,創(chuàng)建一個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 控制臺可以查看到剛創(chuàng)建的 testbucket。
到此這篇關于Docker 部署 Minio 對象存儲服務器的過程詳解的文章就介紹到這了,更多相關Docker 部署 Minio存儲服務器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Django+Vue+Docker搭建接口測試平臺實戰(zhàn)
這篇文章主要介紹了詳解Django+Vue+Docker搭建接口測試平臺實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04使用docker部署influxdb與 mongo的常用命令
這篇文章主要介紹了使用docker部署influxdb與 mongo的常用命令,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05使用docker快速部署Elasticsearch集群的方法
這篇文章主要介紹了使用docker快速部署Elasticsearch集群的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03Docker 簡單部署 ElasticSearch的實現(xiàn)方法
這篇文章主要介紹了Docker 簡單部署 ElasticSearch的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09