溫馨提示×

MinIO在Linux上的容器化部署實踐

小樊
35
2025-07-27 21:28:56
欄目: 智能運維

在Linux上使用Docker容器化部署MinIO是一個相對簡單的過程。以下是詳細的步驟指南:

環境準備

  1. 系統要求:推薦使用Ubuntu 20.04+或CentOS 7+作為操作系統。最低硬件需求是2GB內存和至少10GB存儲空間。
  2. 安裝Docker:確保你的Linux系統上已經安裝了Docker??梢詤⒖?a >Docker官方文檔進行安裝。

使用Docker單獨部署MinIO

  1. 拉取MinIO鏡像

    docker pull minio/minio
    
  2. 創建數據目錄(可選,但推薦):

    mkdir -p /opt/minio/config
    mkdir -p /opt/minio/data
    
  3. 運行MinIO容器

    docker run -d \
      --name minio \
      -p 9000:9000 \
      -p 9001:9001 \
      --restart=always \
      -v /opt/minio/data:/data \
      -v /opt/minio/config:/root/.minio \
      minio/minio server /data \
      --console-address ":9001"
    

    參數說明:

    • -p 9000:9000:將容器的9000端口映射到宿主機的9000端口,用于API通信。
    • -p 9001:9001:將容器的9001端口映射到宿主機的9001端口,用于MinIO控制臺。
    • --restart=always:設置容器的重啟策略,容器退出時總是嘗試重啟。
    • -v /opt/minio/data:/data:使用Docker卷掛載宿主機上的目錄到容器內,用于存儲數據。
    • -v /opt/minio/config:/root/.minio:使用Docker卷掛載宿主機上的目錄到容器內,用于存儲配置文件。

使用Docker Compose部署MinIO

  1. 創建 docker-compose.yml 文件

    version: '3'
    services:
      minio:
        image: minio/minio
        container_name: minio
        ports:
          - "9000:9000"  # API端口
          - "9001:9001"  # 控制臺端口
        environment:
          - TZ=Asia/Shanghai
          - MINIO_ROOT_USER=admin
          - MINIO_ROOT_PASSWORD=Securitydev2021
        volumes:
          - /data/minio/data:/data
          - /data/minio/config:/root/.minio
        command: server --address "0.0.0.0:8000" --console-address "0.0.0.0:8001" /data
        privileged: true
        network_mode: "bridge"
    
  2. 運行容器

    docker-compose -f docker-compose.yml up -d
    

使用Kubernetes部署MinIO

  1. 準備Kubernetes環境:確保你已經安裝并配置好了Docker和Kubernetes。

  2. 創建Kubernetes部署文件(例如 minio-deployment.yaml):

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: minio
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: minio
      template:
        metadata:
          labels:
            app: minio
        spec:
          containers:
          - name: minio
            image: minio/minio:RELEASE.2023-09-30T07-02-29Z
            ports:
            - containerPort: 9000
            - containerPort: 9001
            volumeMounts:
            - name: minio-storage
              mountPath: /data
          volumes:
          - name: minio-storage
            persistentVolumeClaim:
              claimName: minio-pvc
    
  3. 創建PersistentVolumeClaim(例如 minio-pvc.yaml):

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: minio-pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
    
  4. 應用部署文件和PVC

    kubectl apply -f minio-deployment.yaml
    kubectl apply -f minio-pvc.yaml
    
  5. 訪問MinIO控制臺:MinIO控制臺將在Kubernetes集群的外部IP地址上運行,通??梢酝ㄟ^ kubectl get svc 命令找到服務的外部IP和端口。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女