docker minio部署和应用

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

centos7安装docker-ce

docker compose安装

docker常用命令

minio中文文档

  • 此处自定义Access和Secret秘钥,默认值为minioadmin/minioadmin。
  • # docker pull minio/minio
    # docker run -di -p 9000:9000 --name minio1 \
    --restart=always \
    -e "MINIO_ACCESS_KEY=minioadmin123"  \
    -e "MINIO_SECRET_KEY=minioadmin123" \
    -v /mnt/data:/data \
    -v /mnt/config:/root/.minio \
    -v /etc/localtime:/etc/localtime \
    minio/minio:RELEASE.2020-05-08T02-40-49Z server /data
    # firewall-cmd --zone=public --add-port=9000/tcp --permanent //开放端口
    # firewall-cmd --reload
    

    Docker Compose单机多容器

    下载docker-compose.yml并根据本地情节编辑后,上传至服务器当前工作目录,Docker Compose会pull MinIO Docker Image,所以你不需要手动去下载MinIO binary。然后运行下面的命令:
    # docker-compose pull
    # docker-compose up
    

    Swarm mode多机多容器

  • docker swarm 部署minio集群
  • Kubernetes多机多容器

    未完待续...

    文件上传并设置bucket策略

  • 登录Minio Browser页面后,如下图:
  • 点击页面加号ICON,点击Create bucket ICON
  • 点击上传文件ICON
  • 设置文件策略,在左侧bucket上编辑Edit Policy,设置访问前缀为或者.*,选择策略为Read Only/Write Only/Read and Write。
  • mc 客户端

    配置mc命令客户端并设置bucket策略
    # docker pull minio/mc //拉取mc客户端镜像
    # docker run -it --entrypoint=/bin/sh minio/mc // 运行
    # mc config host add minio2 http://宿主机IP:9000 minioadmin minioadmin --api s3v4
    # mc policy set public minio2/testabc //设置访问权限
    # docker attach 容器ID //从新进入容器
    
  • 权限4种:none, download, upload, public
  • mc命令方式和Minio浏览器上设置策略二选一
  • 1、The difference between the request time and the server's time is too large?
    原因:linux服务器时区的问题
    解决方案:调整系统时间和硬件时间
    # date //查看系统时间
    # hwclock //查看硬件时间
    # yum -y install ntp ntpdate //安装ntpdate时间同步工具
    # ntpdate cn.pool.ntp.org  //设置系统时间与网络时间同步
    # hwclock --systohc  //将系统时间写入硬件时间
    
    1、bucket名称只包含小写字符和数字,不能含有特殊字符(_ -)。