文章目录
- 一、环境准备
- 1.安装docker-compose
- 2. 新版本尝鲜
- 3. 镜像下载
- 二、单机编排
- 2.1. 创建docker-compose.yaml
- 2.2. 运行
- 三、集群编排
- 3.1. 下载docker-compose.yaml
- 3.2. nginx.conf
- 3.3.运行
一、环境准备
1.安装docker-compose
https://gblfy.blog.csdn.net/article/details/113934554
2. 新版本尝鲜
minio在升级之后,部署文件有了改动。之前web页面和api上传都是9000端口,新版本将两者分开了。
MINIO_ACCESS_KEY改成了MINIO_ROOT_USER,MINIO_SECRET_KEY改成了MINIO_ROOT_PASSWORD。
3. 镜像下载
docker-compose pull
二、单机编排
2.1. 创建docker-compose.yaml
version: '3.7'# Settings and configurations that are common for all containers
x-minio-common: &minio-commonimage: quay.io/minio/minio:RELEASE.2021-09-18T18-09-59Zcommand: server --console-address ":9001" http://minio{1...4}/data{1...2}expose:- "9000"- "9001"environment:MINIO_ROOT_USER: minioMINIO_ROOT_PASSWORD: minio123healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3# starts 4 docker containers running minio server instances.
# using nginx reverse proxy, load balancing, you can access
# it through port 9000.
services:minio1:<<: *minio-commonhostname: minio1volumes:- data1-1:/data1- data1-2:/data2## By default this config uses default local driver,
## For custom volumes replace with volume driver configuration.
volumes:data1-1:data1-2:
2.2. 运行
docker-compose up
三、集群编排
3.1. 下载docker-compose.yaml
https://github.com/minio/minio/blob/master/docs/orchestration/docker-compose/docker-compose.yaml?raw=true
version: '3.7'# Settings and configurations that are common for all containers
x-minio-common: &minio-commonimage: quay.io/minio/minio:RELEASE.2021-09-18T18-09-59Zcommand: server --console-address ":9001" http://minio{1...4}/data{1...2}expose:- "9000"- "9001"environment:MINIO_ROOT_USER: minioMINIO_ROOT_PASSWORD: minio123healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3# starts 4 docker containers running minio server instances.
# using nginx reverse proxy, load balancing, you can access
# it through port 9000.
services:minio1:<<: *minio-commonhostname: minio1volumes:- data1-1:/data1- data1-2:/data2minio2:<<: *minio-commonhostname: minio2volumes:- data2-1:/data1- data2-2:/data2minio3:<<: *minio-commonhostname: minio3volumes:- data3-1:/data1- data3-2:/data2minio4:<<: *minio-commonhostname: minio4volumes:- data4-1:/data1- data4-2:/data2nginx:image: nginx:1.19.2-alpinehostname: nginxvolumes:- ./nginx.conf:/etc/nginx/nginx.conf:roports:- "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:
3.2. nginx.conf
https://github.com/minio/minio/blob/master/docs/orchestration/docker-compose/nginx.conf?raw=true
user nginx;
worker_processes auto;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;events {worker_connections 4096;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;keepalive_timeout 65;# include /etc/nginx/conf.d/*.conf;upstream minio {server minio1:9000;server minio2:9000;server minio3:9000;server minio4:9000;}upstream console {ip_hash;server minio1:9001;server minio2:9001;server minio3:9001;server minio4:9001;}server {listen 9000;listen [::]:9000;server_name localhost;# To allow special characters in headersignore_invalid_headers off;# Allow any size file to be uploaded.# Set to a value such as 1000m; to restrict file size to a specific valueclient_max_body_size 0;# To disable bufferingproxy_buffering off;location / {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_connect_timeout 300;# Default is HTTP/1, keepalive is only enabled in HTTP/1.1proxy_http_version 1.1;proxy_set_header Connection "";chunked_transfer_encoding off;proxy_pass http://minio;}}server {listen 9001;listen [::]:9001;server_name localhost;# To allow special characters in headersignore_invalid_headers off;# Allow any size file to be uploaded.# Set to a value such as 1000m; to restrict file size to a specific valueclient_max_body_size 0;# To disable bufferingproxy_buffering off;location / {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-NginX-Proxy true;# This is necessary to pass the correct IP to be hashedreal_ip_header X-Real-IP;proxy_connect_timeout 300;# To support websocketproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";chunked_transfer_encoding off;proxy_pass http://console;}}
}
3.3.运行
docker-compose up