一、安装Docker
环境:CentOS7
安装官方给的方法进行安装,首先先卸载旧版本的环境:
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

没找到,没找到正常,因为服务器从来没安装过docker,哈哈哈哈
然后第二步,安装需要的依赖:
$ sudo yum install -y yum-utils$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
然后安装最新的Docker:
$ sudo yum install docker-ce docker-ce-cli containerd.io
安装完成后,我们启动docker:
systemctl start docker
查看docker是否安装成功:
docker -v

docker下载源默认是国外的,我们需要切换到国内源:
我这里选用的是网易的源,首先修改或新增 /etc/docker/daemon.json,修改内容为:
vi /etc/docker/daemon.json{"registry-mirrors": ["http://hub-mirror.c.163.com"]}systemctl restart docker
二、安装Docker-Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
下载慢可以用这个:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
赋予可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
然后查看版本:
docker-compose --version

说明docker-compose已经安装成功
三、用Docker-Compose搭建MinIO集群
查看官方文档,下载docker-compose.yaml与nginx.conf
docker-compose.yaml
version: '3.7'# starts 4 docker containers running minio server instances.# using nginx reverse proxy, load balancing, you can access# it through port 9000.services:minio1:image: minio/minio:RELEASE.2020-11-19T23-48-16Zvolumes:- data1-1:/data1- data1-2:/data2expose:- "9000"environment:MINIO_ACCESS_KEY: minioMINIO_SECRET_KEY: minio123command: server http://minio{1...4}/data{1...2}healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3minio2:image: minio/minio:RELEASE.2020-11-19T23-48-16Zvolumes:- data2-1:/data1- data2-2:/data2expose:- "9000"environment:MINIO_ACCESS_KEY: minioMINIO_SECRET_KEY: minio123command: server http://minio{1...4}/data{1...2}healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3minio3:image: minio/minio:RELEASE.2020-11-19T23-48-16Zvolumes:- data3-1:/data1- data3-2:/data2expose:- "9000"environment:MINIO_ACCESS_KEY: minioMINIO_SECRET_KEY: minio123command: server http://minio{1...4}/data{1...2}healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3minio4:image: minio/minio:RELEASE.2020-11-19T23-48-16Zvolumes:- data4-1:/data1- data4-2:/data2expose:- "9000"environment:MINIO_ACCESS_KEY: minioMINIO_SECRET_KEY: minio123command: server http://minio{1...4}/data{1...2}healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3nginx:image: nginx:1.19.2-alpinevolumes:- ./nginx.conf:/etc/nginx/nginx.conf:roports:- "9000:9000"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:
nginx.conf
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 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;}}}
然后执行命令
docker-compose pulldocker-compose up -d /*-d代表后台运行*/
然后查看docker状态
docker ps

这样,用docker-compose搭建minio集群就完成了
查看日志:
这样利用docker-compose搭建minio分布式就成功了
