02. docker-compose启动minio 伪集群
其他相关文章:
《docker-compose启动minio 单机》
《docker-compose启动minio 伪集群》
《docker-compose启动minio 多机集群》
《docker-compose启动minio (Version 2022-)》
docker-compose.yml 和 nginx配置文件都在这里
1. docker-compos.yml 文件
创建docker-compos.yml 文件,根据实际情况做修改如下:
version: '3.7' services: minio1: image: minio/minio:RELEASE.2021-02-01T22-56-52Z volumes: - ./data1-1:/data1 - ./data1-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: HongJian1840 command: server 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:RELEASE.2021-02-01T22-56-52Z volumes: - ./data2-1:/data1 - ./data2-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: HongJian1840 command: server 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:RELEASE.2021-02-01T22-56-52Z volumes: - ./data3-1:/data1 - ./data3-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: HongJian1840 command: server 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:RELEASE.2021-02-01T22-56-52Z volumes: - ./data4-1:/data1 - ./data4-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: HongJian1840 command: server 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 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro ports: - "9000:9000" depends_on: - minio1 - minio2 - minio3 - minio4
说明
上边server http://minio{1...4}/data{1...2}
展开写的话是:
command: server http://minio1/data1 http://minio1/data2 http://minio2/data1 ..... http://minio4/data2
2. nginx配置文件
user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } 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; #tcp_nopush on; keepalive_timeout 65; #gzip on; # include /etc/nginx/conf.d/*.conf; upstream minio { server minio1:9000; server minio2:9000; server minio3:9000; server minio4:9000; } server { listen 9000; listen [::]:9000; server_name localhost; # To allow special characters in headers ignore_invalid_headers off; # Allow any size file to be uploaded. # Set to a value such as 1000m; to restrict file size to a specific value client_max_body_size 0; # To disable buffering proxy_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.1 proxy_http_version 1.1; proxy_set_header Connection ""; chunked_transfer_encoding off; proxy_pass http://minio; } } }
3. version 2022 的问题
和之前的版本区别:启动时会随机分配一个控制台端口。
- 因为我们是容器启动,如果不用host模式,则需要固定该端口,在启动命令上添加
--console-address ":n"
(n是指定端口号。):
command: server /data --console-address ":9999"
- 访问的url 也是 9999 端口
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了