搭建MinIO容器

时间:2022-11-30 17:53:45

1 问题背景

玩一个前后端的项目,需要用到对象存储器,于是使用开源的MinIO。期间以Docker方式搭建遇到某些坑,此处仅以博客的方式记录下来

2 资源准备

  • Linux操作系统,笔者使用CentOS 7
  • 安装Docker服务

3 安装Docker服务

此处笔者采用网上在线安装的方式,几条命令就可以搞定了

# 安装yum工具
yum install -y yum-utils

# 设置 yum 仓库地址
yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新 yum 缓存
yum makecache fast

# 安装Docker服务
yum install -y docker-ce docker-ce-cli containerd.io

# 设置自启动Docker服务
systemctl enable docker

# 重启Docker服务
systemctl restart docker

# 检查Docker服务是否已经成功运行
systemctl status docker

4 关闭防火墙

如果使用的是云服务器,不建议关闭防火墙。如果没有关闭防火墙,那么启动docker容器的时候,需要在防火墙添加容器端口,否则无法访问。如果关闭了防火墙,则必须重启Docker服务,否则也会有问题。

# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙自启动
systemctl disable firewalld.service
# 重启Docker服务
systemctl restart docker

5 以Docker方式安装MinIO

下载MinIO镜像

docker pull minio/minio

启动MinIO容器

docker run -p 9000:9000 -p 9001:9001 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minio" \
-e "MINIO_SECRET_KEY=minio123" \
-v /mydata/minio/data:/data \
-v /mydata/minio/config:/root/.minio \
minio/minio server --console-address ":9000" --address ":9001" /data

参数解释:

  1. MINIO_ROOT_PASSWORD的值必须大于或等于8个字符
  2. -v,挂在数据卷,持久化数据
  3. minio/minio server /data,这是启动MinIO Server的命令
  4. --console-address ":9000",指定访问控制台的端口号,不指定会访问不了
  5. --address ":9001",api端口号,不能与控制台端口号相同
  6. 使用容器搭建,必须要使用 -p指定2个端口号,否则物理机无法访问到虚拟机里面的minio容器的端口,最终会导致无法访问MinIO中的对象(比如无法访问图片)
  7. 此处9000是作为访问MinIO控制台的端口,而9001是作为访问资源的端口(比如访问存储在MinIO中的图片)
  8. 根据笔者的配置,此处图片访问地址则是:服务器IP:9001/桶名/资源名

6 访问MinIO

访问地址:服务器IP:9000
账号:minio
密码:minio123

搭建MinIO容器