在上一篇文章中,按我对对象存储的理解,大概写了一下,这一篇文章就来写写如何在Docker下部署单节点的minio对象存储服务,需要注意的是minio支持分布式形式,麻烦一些,可以翻翻一些大佬写的文章。
部署
在群晖上开设存储空间,如我在/volume2/docker/minio
目录下新建data
、config
目录,待一会儿挂载到docker容器的相应目录下。
在SSH下使用docker命令行启动Minio容器,代码如下:
docker run --net=host --name minio \
-d --restart=always \
-e MINIO_ROOT_USER=minio \
-e MINIO_ROOT_PASSWORD=minioxx \
-e MINIO_SERVER_URL=https://minio.xzf.cn \
-e MINIO_BROWSER_REDIRECT_URL=https://con.minio.xzf.cn \
-v /volume2/docker/minio/data:/data \
minio/minio server /data --console-address ":9001" --address ":9000"
一些参数解释
- 9000数据通讯端口,比如您通过客户端或API上传对象时使用的端口
- /volume2/docker/minio/data为本地挂载路径,也是minio的数据承载设备
- MINIO_ROOT_USER设置用户名
- MINIO_ROOT_PASSWORD设置密码
- 域名参数,为nginx等反向代理准备
- MINIO_SERVER_URL 设置对象服务域名,mc等客户端连接的域名
- MINIO_BROWSER_REDIRECT_URL 设置控制台域名
- –console-address “:9001″为WEB访问端口,以前老版本没有这个参数,最近新版增加的
- –net=host 单机部署,直接使用主机网络,如果想要一台主机部署多个Minio节点,则改为桥接,并使用-p定义端口映射
启动之后,就可以使用主机IP:9001访问服务的控制台,再使用MINIO_ROOT_USER和MINIO_ROOT_PASSWORD登陆,以下就是登陆之后的页面
反向代理
局域网反向代理
在局域网内的DNS服务(自行架设),加入minio.xzf.cn
、con.minio.xzf.cn
指向群晖主机IP192.168.1.146
。
在群晖设置反向代理
分别针对9000、9001设置接入点
处理完之后,就可以在局域网的其他主机上使用域名con.minio.xzf.cn
访问到minio的控制台。
公网反向代理
由于我需要公网服务,因此还在接入主机(阿里云香港)这里,设置了caddy反向代理,配置如下:
~# cat /etc/caddy/conf.d/minio.conf
minio.xzf.cn
{
encode zstd gzip
header / {
# Enable HTTP Strict Transport Security (HSTS)
Strict-Transport-Security "max-age=31536000;"
X-XSS-Protection "1; mode=block"
X-Frame-Options "DENY"
X-Robots-Tag "none"
-Server
}
log {
output file /var/log/caddy/minio.log {
roll_size 50MiB # https://caddyserver.com/docs/caddyfile/directives/log#log
roll_keep 2 # https://caddyserver.com/docs/caddyfile/directives/log#log
}
level INFO
}
reverse_proxy 192.168.1.146:9000 {
header_up X-Real-IP {http.request.remote.host}
header_up X-Forwarded-For {http.request.remote.host}
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
}
}
做完局域网与公网的反向代理之后,就可以使用minio.xzf.cn
在局域网与公网无差别访问到minio对象存储服务。
运维要点
一些运维安全注意点
- con.minio.xzf.cn控制台页面不建议暴露到公共服务网点,我也只是在局域网上的nginx部署了这个局域站点,就算真部署了控制台站点,也务必加上访问IP白名单。
- 密码复制点,最好随机生成。
- 后续想到再加