MinIO 是一個高性能、分布式的對象存儲系統,兼容 Amazon S3 云存儲服務協議,廣泛應用于企業存儲、大數據、機器學習和容器化應用等領域。以下是詳細介紹:
核心特點
-
兼容 S3 API :全面兼容 Amazon S3 API,這意味著使用 S3 API 的應用程序幾乎無需修改即可與 MinIO 兼容,方便用戶遷移和集成。
-
高性能 :MinIO 支持分布式架構,可將多個服務器組合成一個存儲池,提供高吞吐量和低延遲的存儲服務,適用于高性能計算和大數據處理場景。
-
分布式架構 :支持在多個節點上進行分布式存儲,能夠充分利用多臺機器的資源,實現存儲容量和性能的水平擴展。
-
安全性 :支持多種身份驗證和授權機制,包括 S3 簽名驗證、主動式目錄服務(Active Directory)和輕量級目錄訪問協議(LDAP)等,還支持數據加密、多因素身份驗證等安全功能,確保數據的安全性和隱私性。
-
易用性 :提供豐富的客戶端工具和管理界面,方便用戶進行存儲操作和管理。同時,其安裝和配置過程簡單,便于快速部署和使用。
搭建過程
環境準備
1、安裝Docker
略
2、創建維護用戶和存儲目錄
如果不使用Docker的 Rootless部署,可以不創建普通用戶,在docker run啟動時,也無需--user指定運行用戶。
useradd minio && usermod -a -G docker minio
su - minio && mkdir -p ${HOME}/minio/data
啟動MinIO容器
docker run -d --name my-minio \-p 9000:9000 \-p 9001:9001 \--user $(id -u):$(id -g) \quay.io/minio/minio server /data --console-address ":9001"
注意:
1、MinIO默認情況下在隨機端口上運行控制臺,如果您希望選擇特定的端口,
請使用--console-address來選擇特定的接口和端口。
2、不指定用戶名密碼,可以通過docker logs從日志中查看用戶名密碼,默認:minioadmin:minioadmin
其他額外啟動項
指定用戶名密碼
? ?-e "MINIO_ROOT_USER=admin" \
? ?-e "MINIO_ROOT_PASSWORD=PASSWORD" \
配置console語言為中文。
雖并未對console web頁做國際化,仍然顯示英文;但是,部分配置項會以中文展示了。
? ?-e "MINIO_CONSOLE_LOCALE=zh_CN" \
以本地目錄配置存儲持久化
? ?-v ${HOME}/minio/data:/data \
配置https訪問所需的證書目錄
注:這里不指定,默認使用~/.minio/certs目錄下的證書(該目錄下默認為空,即使用http訪問)
? ?-v ${HOME}/minio/certs:/certs \
基本啟動參數
-
docker run -d --name my-minio3
:以分離模式(后臺運行)啟動一個名為my-minio3
的 Docker 容器。 -
-p 9000:9000 -p 9001:9001
:將宿主機的 9000 端口和 9001 端口分別映射到容器內部的 9000 端口和 9001 端口。9000 用于對象存儲服務,9001 用于 MinIO Console。 -
--user $(id -u):$(id -g)
:以當前用戶的用戶 ID 和組 ID 運行容器,確保容器內的文件和目錄權限與宿主機用戶匹配,避免權限問題。
環境變量配置
-
-e "MINIO_ROOT_USER=admin"
:設置 MinIO 的根用戶賬號為admin
。 -
-e "MINIO_ROOT_PASSWORD=你的密碼"
:設置 MinIO 的根用戶密碼。 -
-e "MINIO_CONSOLE_LOCALE=zh_CN"
:設置 MinIO Console 的語言為中文(簡體)。
卷掛載
-
-v ${HOME}/minio/data:/data
:將宿主機用戶主目錄下的minio/data
目錄掛載到容器內的/data
目錄,用于存儲 MinIO 的數據。 -
-v ${HOME}/minio/certs:/certs
:將宿主機用戶主目錄下的minio/certs
目錄掛載到容器內的/certs
目錄,用于提供 TLS 證書和私鑰。
MinIO 服務配置
-
quay.io/minio/minio server --certs-dir /certs /data --console-address ":9001"
:指定使用的 MinIO 鏡像,并配置 MinIO 服務。-
server
:表示以服務器模式運行 MinIO。 -
--certs-dir /certs
:指定證書目錄為容器內的/certs
,用于啟用 HTTPS。 -
/data
:指定 MinIO 數據存儲目錄為容器內的/data
。 -
--console-address ":9001"
:設置 MinIO Console 的監聽地址為容器內部的 9001 端口。
-
最終啟動命令
docker run -d --name my-minio3 \-p 9000:9000 \-p 9001:9001 \--user $(id -u):$(id -g) \-e "MINIO_ROOT_USER=admin" \-e "MINIO_ROOT_PASSWORD=PASSWORD" \-e "MINIO_CONSOLE_LOCALE=zh_CN" \-v ${HOME}/minio/data:/data \-v ${HOME}/minio/certs:/certs \quay.io/minio/minio server --certs-dir /certs /data --console-address ":9001"
如果只啟動S3 API的話,要禁用console,可以如下啟動:
docker run -d --name my-minio2 \-p 9000:9000 \--user $(id -u):$(id -g) \-e "MINIO_BROWSER=off" \-v ${HOME}/minio/data:/data \quay.io/minio/minio server /data
驗證
使用MinIO控制臺進行測試
MinIO服務器帶有一個嵌入式的基于web的對象瀏覽器。
瀏覽器訪問:http://IP:9000
用戶名密碼登錄后