本文章适合有一定docker基础的朋友观看,如果觉得博主创作的好,麻烦点个赞和关注下,更多内容关注动态。最好大家版本同一,避免不必要的麻烦(镜像版本在compose文件里面有,下载即可)
首先我们需要配置docker-compse文件,配置文件的路径自选(我自己的放在/home目录下的)。并且由于官方的文件地址打不开,所以我会放到我的gitee上,链接统一的放到最后面
version: '3.7'
#minio的相关镜像以及配置(注意我这里的minio没有进行文件挂载,有需求的小伙伴可以自行挂载或者留言问我)
x-minio-common: &minio-common
image: minio/minio
command: server --console-address ":9001" http://minio{1...4}/data{1...2}
#暴露的端口
expose:
- "9000"
- "9001"
#自定义账号和密码(密码注意不能低于8位)
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: 12345678
#启动方式,我这里是永久启动
restart: always
healthcheck:
#测试的命令,可以在通过输入curl 。。。这个命令在linux上访问
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
# 创建4个docker容器运行minio服务实例
# 用nginx进行反向代理,负载均衡,你可以通过9000端口运行
services:
minio1:
<<: *minio-common
hostname: minio1
minio2:
<<: *minio-common
hostname: minio2
minio3:
<<: *minio-common
hostname: minio3
minio4:
<<: *minio-common
hostname: minio4
#nginx的镜像
nginx:
image: nginx:1.19.2-alpine
#挂载文件的路径,我的与docker-compose一样都是放在/home路径下的;注意不同版本的nginx有可能容器内部路径不同
volumes:
#./指当前目录下
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./log:/var/log/nginx
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./html:/usr/share/nginx/html
#端口映射配置
ports:
- "80:80"
- "9001:9001"
#依赖服务
depends_on:
- minio1
- minio2
- minio3
- minio4
#也是永久启动
restart: always
然后我们需要在/home路径下配置nginx.conf文件(记得要在windows下配置好dns解析地址) 192.168.232.133是我的虚拟机的ip地址
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;
client_max_body_size 1000m;
#gzip on;
include /etc/nginx/conf.d/*.conf;
#负载均衡配置(这两个必须配,访问的是minio_console所对应的url)
upstream minio_http {
server minio1:9000;
server minio2:9000;
server minio3:9000;
server minio4:9000;
}
upstream minio_console {
server minio1:9001;
server minio2:9001;
server minio3:9001;
server minio4:9001;
}
server {
listen 80;#这里监听的端口对应的代理的是minio_console,那么访问agriculture.com时就不需要带上80端口
#服务名称自定义
server_name agriculture.com;
location /{
proxy_set_header Host $http_host;
proxy_pass http://minio_console;
}
}
server {
listen 9001;
server_name agriculture.com;
location /{
proxy_set_header Host $http_host;
proxy_pass http://minio_http;
}
}
}
通过上述的配置过后,然后在当前路径我这里是/home下进行如下操作
如果全部显示done,就代表成功了
然后再进行docker-compose up操作
如果显示如下图片样式就代表成功了(由于太多我只截取了前面部分的,一定要全部done才可以)
然后就可以通过docker ps查看是否有容器了(每个人的容器id不相同)
最后我们访问http://agriculture.com/时它会自动跳到http://agriculture.com/login去,出现如下界面,然后输入自定义的账号和密码就成功了