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

相关推荐
蓁蓁啊2 小时前
GIT使用SSH 多账户配置
运维·git·ssh
程序猿小三4 小时前
Linux下基于关键词文件搜索
linux·运维·服务器
虚拟指尖5 小时前
Ubuntu编译安装COLMAP【实测编译成功】
linux·运维·ubuntu
椎4956 小时前
苍穹外卖前端nginx错误之一解决
运维·前端·nginx
刘某的Cloud6 小时前
parted磁盘管理
linux·运维·系统·parted
极验6 小时前
iPhone17实体卡槽消失?eSIM 普及下的安全挑战与应对
大数据·运维·安全
爱倒腾的老唐6 小时前
24、Linux 路由管理
linux·运维·网络
yannan201903136 小时前
Docker容器
运维·docker·容器
_清浅6 小时前
计算机网络【第六章-应用层】
运维·服务器·计算机网络
正在努力的小河7 小时前
Linux 自带的 LED 灯驱动实验
linux·运维·服务器