在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和端口。