Docker本地安装Minio对象存储

Docker本地安装Minio对象存储

1. 什么是 MinIO?

MinIO 是一个开源的对象存储服务器。这意味着它允许你在互联网上存储大量数据,比如文件、图片、视频等,而不需要依赖传统的文件系统。MinIO 的特点在于它非常灵活、易于使用,同时也非常强大,可以在你的应用程序中方便地集成。

2. 为什么使用 MinIO?

  • 可伸缩性和性能: MinIO 允许你在需要时轻松地扩展存储容量,无需中断服务。它具有出色的性能,可以处理大量的并发读取和写入请求。
  • 开源和自由: MinIO 是开源软件,遵循 Apache License 2.0 许可证,这意味着你可以自由地使用、修改和分发它。
  • 容器化部署: MinIO 提供了容器化部署的支持,可以在各种平台上快速部署和运行,包括本地开发机、云服务器和容器编排环境(如 Docker)。
  • 兼容性: MinIO 提供了 S3 兼容的 API,这意味着它可以与任何兼容 Amazon S3 的应用程序无缝集成,为你的应用程序提供强大的对象存储能力。
  • 易用性: MinIO 的配置和管理非常简单,它提供了直观的Web控制台和命令行工具,帮助你方便地管理存储桶和对象。

总的来说,MinIO 是一个灵活、高性能、易用且开源的对象存储解决方案,适用于各种规模的应用程序,特别是那些需要大规模数据存储和访问的项目。

3. Docker 搭建 Minio 服务

3.1 选择一个 Minio 镜像

然后,我们在浏览器中访问地址:https://hub.docker.com/ , 输入关键词 minio/minio , 找到 Minio 镜像:

3.2 下载 Minio 镜像

java 复制代码
docker pull minio/minio:RELEASE.2023-09-30T07-02-29Z

镜像下载成功后,执行 docker images , 如果列表中有 minio/minio 镜像,则表示镜像下载成功了:

3.3 新建数据挂载目录

下载镜像成功后,我们在某个盘下,这里选择的是 E: 盘,新建一个 /docker 文件夹,然后在该文件夹中再新建一个 /minio 文件夹

新建该文件夹的目的是,后面通过镜像运行 Minio 容器时,可以将容器内的数据目录,挂载到宿主机的 E:\docker\minio 目录下,防止容器重启后,会导致数据丢失的问题。

3.4 运行 Docker Minio 容器

然后,通过该镜像运行 Minio 容器,命令如下:

java 复制代码
docker run -d \
   -p 9000:9000 \
   -p 9090:9090 \
   --name minio \
   -v E:\docker\minio\data:/data \
   -e "MINIO_ROOT_USER=qiheyehua" \
   -e "MINIO_ROOT_PASSWORD=qiheyehua" \
   minio/minio:RELEASE.2023-09-30T07-02-29Z server /data --console-address ":9090"

注意,执行的时候需要将 \ 替换成空格,放到一行中来执行,最终命令如下:注意,执行的时候需要将 \ 替换成空格,放到一行中来执行,最终命令如下:

java 复制代码
docker run -d -p 9000:9000 -p 9090:9090 --name minio -v E:\docker\minio\data:/data -e "MINIO_ROOT_USER=quanxiaoha" -e "MINIO_ROOT_PASSWORD=quanxiaoha" minio/minio:RELEASE.2023-09-30T07-02-29Z server /data --console-address ":9090"

解释一下上述命令各选项的含义:

  • docker run: 运行 Docker 容器的命令。
  • -d : 表示后台运行该容器;
  • -p 9000:9000: 将宿主机的 9000 端口映射到容器的 9000 端口。MinIO 默认的 HTTP API 端口是 9000。
  • -p 9090:9090: 将宿主机的 9090 端口映射到容器的 9090 端口。这是 MinIO 的 Web 控制台的端口。
  • --name minio: 给容器取了一个名字,这里是 "minio"。
  • -v E:\docker\minio\data:/data: 将宿主机上的 E:\docker\minio\data 目录映射到容器内的 /data目录。这是 MinIO 存储数据的地方。如果你希望数据在容器删除后仍然保存,可以将数据目录映射到宿主机。
  • -e "MINIO_ROOT_USER=quanxiaoha": 设置 MinIO 的管理员用户名为 "quanxiaoha"。这是用于 MinIO Web 控制台和 API 的初始管理员用户名。
  • -e "MINIO_ROOT_PASSWORD=quanxiaoha": 设置 MinIO 的管理员密码为 "quanxiaoha"。这是用于 MinIO Web 控制台和 API 的初始管理员密码。
  • minio/minio:RELEASE.2023-09-30T07-02-29Z: 这是 MinIO 的 Docker 镜像版本。
  • server /data --console-address ":9090": 启动 MinIO 服务器,并将数据存储在容器内的/data目录。--console-address ":9090"表示 MinIO 的Web 控制台将在容器的 9090 端口上运行。

4. 访问 Minio 控制台

浏览器访问地址 http://localhost:9090 ,可访问 MinIO 的 Web 控制台:

5. 新建一个 Bucket 桶

进入后台后,点击 Create a Bucket 创建一个 Bucket 桶,用于存储图片:

输入 Bucket Name, 我们将其命名为 weblog , 然后点击 Create Bucket 按钮:

6. 设置 Bucket 为公共读

因为我们上传的图片需要被公网访问到,所以,还需要设置 Bucket 为公共读,默认为 Private 私有。点击想要设置的桶,然后编辑 Access Policy:

将 Access Policy 选项选择为 Public 公共读,点击 Set 设置按钮:

Access Policy 选项选择为 Public 公共读,点击 Set 设置按钮:

设置成功后,就可以看到 Access Policy 一栏变更为 Public

相关推荐
AOwhisky12 小时前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes
小龙在慢慢变强..12 小时前
目录结构(FHS 标准)
linux·运维·服务器
刘延林.12 小时前
win11系统下通过 WSL2 安装Ubuntu 24.04 使用RTX 5080 GPU
linux·运维·ubuntu
星恒讯工业路由器13 小时前
星恒讯工业生产自动化解决方案
运维·物联网·自动化·智能路由器·信息与通信
a8a30213 小时前
Laravel9.x新特性全解析
运维·spring boot·nginx
beyond阿亮13 小时前
IEC104 Client Simulator - IEC104 主站/客户端模拟器 仿真器免费使用教程
运维·服务器·网络
郑寿昌13 小时前
GPU显存HPA:K8s智能扩缩实战
云原生·容器·kubernetes
Agent产品评测局14 小时前
生产排期与MES/ERP系统打通,实操方法详解:2026企业级智能体与超自动化集成实战指南
运维·人工智能·ai·chatgpt·自动化
C Y D14 小时前
只启动wsl
docker
CodeOfCC14 小时前
Linux 嵌入式arm64安装openclaw
linux·运维·服务器