Docker部署minio开源对象存储

在上一篇文章中,按我对对象存储的理解,大概写了一下,这一篇文章就来写写如何在Docker下部署单节点的minio对象存储服务,需要注意的是minio支持分布式形式,麻烦一些,可以翻翻一些大佬写的文章。

部署

在群晖上开设存储空间,如我在/volume2/docker/minio目录下新建dataconfig目录,待一会儿挂载到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.cncon.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对象存储服务。

运维要点

一些运维安全注意点

  1. con.minio.xzf.cn控制台页面不建议暴露到公共服务网点,我也只是在局域网上的nginx部署了这个局域站点,就算真部署了控制台站点,也务必加上访问IP白名单。
  2. 密码复制点,最好随机生成。
  3. 后续想到再加

参考资料

  1. 系统环境参数

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Scroll to Top