下面将介绍使用docker-compose在一台主机上模拟分布式部署的情况,有需要单节点部署的可以参考我的上篇文章 minio单节点部署
使用 docker-compose 在一台机器上模拟分布式环境
如有开发需求,可以使用docker-compose模拟分布式环境,用于部署开发、测试环境,下面提供模拟4个节点,每个节点2个磁盘的分布式部署docker-compose.yml文件
节点(每个容器模拟一个主机) | 端口 |
宿主机iP | 9001 |
宿主机iP | 9002 |
宿主机iP | 9003 |
宿主机iP | 9004 |
首先确认已安装docker-compose,下面提供pip方式下载,其余方式可以自行百度
S1:安装pip;
# install docker_compose
sudo yum -y install epel-release # 安装扩展源EPEL
yum -y install python-pip # 安装pip
S2:安装docker-compose;
pip install docker-compose
S3:在任意目录创建docker-compose.yaml文件, 把下列内容拷贝进去
#docker-compose.yaml
version: '3.7'
# starts 4 docker containers running minio server instances. Each
# minio server's web interface will be accessible on the host at port
# 9001 through 9004.
services:
minio1:
image: minio/minio
volumes:
- data1-1:/data1
- data1-2:/data2
ports:
- "9001:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
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
volumes:
- data2-1:/data1
- data2-2:/data2
ports:
- "9002:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
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
volumes:
- data3-1:/data1
- data3-2:/data2
ports:
- "9003:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
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
volumes:
- data4-1:/data1
- data4-2:/data2
ports:
- "9004:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
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
## 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:
S4:下载镜像并启动容器
docker-compose pull && docker-compose up
S5:访问任意节点即可:
http://宿主机ip:9001/
http://宿主机ip:9002/
http://宿主机ip:9003/
http://宿主机ip:9004/