CentOS 7中使用Docker运行MinIO作为对象存储服务器

对象存储 MinIO docker centos7 nginx 运维 · systemofdown · 于 4年前 发布 · 3355 次阅读

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

安装Docker

yum install  yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce

设为开机启动并运行

systemctl enable docker
systemctl start docker

查看运行状态,以及docker版本

systemctl status docker
docker version

如:

docker version

安装MinIO

参考官方文档MinIO快速入门指南,安装稳定版的

docker pull minio/minio

启动镜像

docker run -p 9000:9000  --name minio1 -e MINIO_ACCESS_KEY=xxxxxxxx -e MINIO_SECRET_KEY=xxxxxxxx -e MINIO_DOMAIN=oss.bestyii.com -e MINIO_REGION_NAME=beijing  -v /data:/data   minio/minio server /data

查看进程状态

docker ps -a

如: docker 容器

可以设置成随docker启动

docker container update --restart=always 7d0610c0297e #根据自己的container Id 设置

截止安装就完成了。

为MinIO Server设置Nginx代理

1. 前提条件

从这里下载并安装MinIO Server。前面已经顺利安装好了。

2. 安装

安装Nginx,可以参考CentOS 7 下 Nginx 安全加固配置规范一文中安装部分。

3. 配置

我们用的是CentOS7 ,标准的Root配置。nginx的配置文件在/etc/nginx/conf.d/

  1. 删除同一个目录中现有的default.conf文件
  2. 在创建文件minio.conf并添加下面的内容
server {
 listen 80;
 server_name oss.bestyii.com;
 location / {
   proxy_set_header Host $http_host;
   proxy_pass http://localhost:9000;
 }
}

为了能够上传大文件,在http上下文中添加client_max_body_size 1000m;,只需按你的需求调整该值。默认值是1m,对大多数场景来说太低了。

还可以配置https和http兼容模式,最终得到如下配置:

server {
    listen       80;
    listen 443 ssl;
    server_name  oss.bestyii.com;

    ssl_certificate   /etc/nginx/cert/oss.bestyii.com.pem;#按实际配置
    ssl_certificate_key  /etc/nginx/cert/oss.bestyii.com.key; #按实际配置
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    #charset koi8-r;
    access_log  /var/log/nginx/oss.access.log  main;
    error_log /var/log/nginx/oss.error.log;

    client_max_body_size 1000m;

    location / {
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:9000;
    }

}

现在在浏览器里面输入oss.bestyii.com MinIO

系统默认会生成AccessKey和SecretKey到data目录下,在运行docker的时候我已经将docker内部的data目录映射到了本地/data下了,所以用下面命令查看即可

cat  /data/.minio.sys/config/config.json ;

这里还有更多的配置,比如region什么的,更多参数说明看文档MinIO Server配置指南

本文由 systemofdown 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册