1.簡介
MinIO 是一個基于Apache License v2.0開源協定的對象存儲服務。它相容亞馬遜S3雲存儲服務接口,非常适合于存儲大容量非結構化的資料,例如圖檔、視訊、日志檔案、備份資料和容器/虛拟機鏡像等,而一個對象檔案可以是任意大小,從幾kb到最大5T不等。
MinIO是一個非常輕量的服務,可以很簡單的和其他應用的結合,類似 NodeJS, Redis 或者 MySQL。
minio中文文檔
2.單機編排
version: '3'
services:
minio:
image: minio/minio
hostname: "minio"
ports:
- 9000:9000 # api 端口
- 9001:9001 # 控制台端口
environment:
MINIO_ACCESS_KEY: minioadmin #管理背景使用者名
MINIO_SECRET_KEY: minioadmin #管理背景密碼,最小8個字元
volumes:
- /docker/minio/data:/data #映射目前目錄下的data目錄至容器内/data目錄
- /docker/minio/config:/root/.minio/ #映射配置目錄
command: server --console-address ':9001' /data #指定容器中的目錄 /data
privileged: true
restart: always
3.叢集編排
version: '3'
# starts 4 docker containers running minio server instances.
# using nginx reverse proxy, load balancing, you can access
# it through port 9000.
services:
minio1:
image: minio/minio
hostname: minio1
volumes:
- data1-1:/data1
- data1-2:/data2
expose:
- "9000"
- "9001"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server --console-address ":9001" http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
minio2:
image: minio/minio
hostname: minio2
volumes:
- data2-1:/data1
- data2-2:/data2
expose:
- "9000"
- "9001"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server --console-address ":9001" http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
minio3:
image: minio/minio
hostname: minio3
volumes:
- data3-1:/data1
- data3-2:/data2
expose:
- "9000"
- "9001"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server --console-address ":9001" http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
minio4:
image: minio/minio
hostname: minio4
volumes:
- data4-1:/data1
- data4-2:/data2
expose:
- "9000"
- "9001"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server --console-address ":9001" http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
nginx:
image: nginx:1.19.2-alpine
hostname: nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
ports:
- "9000:9000"
- "9001:9001"
depends_on:
- minio1
- minio2
- minio3
- minio4
## By default this config uses default local driver,
## For custom volumes replace with volume driver configuration.
volumes:
data1-1:
data1-2:
data2-1:
data2-2:
data3-1:
data3-2:
data4-1:
data4-2:
4.進入控制台
通路
http://ip:9000
即可進入登入頁面
賬号密碼為編排檔案内指定的
MINIO_ROOT_USER
與
MINIO_ROOT_PASSWORD
點選
Object Browser
進入桶頁面 點選
Create Buckets
建立桶
建立一個名為
test
的對象桶
點選
Create Folder
可以随意建立路徑目錄
我們在
test/upload/images
目錄下點選
File
上傳檔案按鈕
選擇需要上傳的檔案 點選上傳即可
點選檔案後方
下載下傳
标志按鈕可以下載下傳檔案
我們點選下載下傳 将檔案下載下傳到桌面
下載下傳成功 接下來我們将檔案進行删除
點選 檔案後方
删除
标志按鈕
提示删除成功 檔案消失
參考文章:傳送門