在Linux上使用Docker容器化部署MinIO是一個相對簡單的過程。以下是詳細的步驟指南:
拉取MinIO鏡像:
docker pull minio/minio
創建數據目錄(可選,但推薦):
mkdir -p /opt/minio/config
mkdir -p /opt/minio/data
運行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.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"
運行容器:
docker-compose -f docker-compose.yml up -d
準備Kubernetes環境:確保你已經安裝并配置好了Docker和Kubernetes。
創建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
創建PersistentVolumeClaim(例如 minio-pvc.yaml
):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minio-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
應用部署文件和PVC:
kubectl apply -f minio-deployment.yaml
kubectl apply -f minio-pvc.yaml
訪問MinIO控制臺:MinIO控制臺將在Kubernetes集群的外部IP地址上運行,通??梢酝ㄟ^ kubectl get svc
命令找到服務的外部IP和端口。