1. 程式人生 > 其它 >docker-compose 搭建 最新版minio 配置(含分散式)

docker-compose 搭建 最新版minio 配置(含分散式)

簡介

MinIO 是一個基於Apache License v2.0開源協議的物件儲存服務。它相容亞馬遜S3雲端儲存服務介面,非常適合於儲存大容量非結構化的資料,例如圖片、視訊、日誌檔案、備份資料和容器/虛擬機器映象等,而一個物件檔案可以是任意大小,從幾kb到最大5T不等。

MinIO是一個非常輕量的服務,可以很簡單的和其他應用的結合,類似 NodeJS, Redis 或者 MySQL。

minio中文文件

單機編排

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

叢集編排

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:

進入控制檯
訪問 http://ip:9000 即可進入登入頁面
賬號密碼為編排檔案內指定的 MINIO_ROOT_USER 與 MINIO_ROOT_PASSWORD

點選 Object Browser 進入桶頁面 點選 Create Buckets 新建桶

建立一個名為 test 的物件桶

點選 Create Folder 可以隨意建立路徑目錄

我們在 test/upload/images 目錄下點選 File 上傳檔案按鈕

選擇需要上傳的檔案 點選上傳即可

點選檔案後方 下載 標誌按鈕可以下載檔案

我們點選下載 將檔案下載到桌面

下載成功 接下來我們將檔案進行刪除
點選 檔案後方 刪除 標誌按鈕

提示刪除成功 檔案消失