【linux】(23)对象存储服务-MinIo

MinIO 是一个高性能的对象存储服务,兼容 Amazon S3 API。

Docker安装MinIo

前提条件

确保您的系统已经安装了 Docker。如果还没有安装 Docker,可以参考 Docker 官方文档进行安装。

1. 拉取 MinIO Docker 镜像

首先,从 Docker Hub 拉取 MinIO 的官方 Docker 镜像:

sh 复制代码
docker pull minio/minio

2. 创建数据目录

为了持久化存储数据,需要在主机上创建一个目录来存放 MinIO 数据:

sh 复制代码
mkdir -p /mnt/data/minio

3. 运行 MinIO 容器

使用以下命令启动 MinIO 容器:

sh 复制代码
docker run -d --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -v /mnt/sda/docker/minio:/data \
  -e "MINIO_ROOT_USER=wuss" \
  -e "MINIO_ROOT_PASSWORD=wu123abc." \
  minio/minio server /data --console-address ":9001"

解释:

  • -d:以后台模式运行容器。
  • --name minio:为容器指定名称 minio
  • -p 9000:9000:将主机的端口 9000 映射到容器的端口 9000(MinIO API 端口)。
  • -p 9001:9001:将主机的端口 9001 映射到容器的端口 9001(MinIO 控制台端口)。
  • -v /mnt/data/minio:/data:将主机的 /mnt/data/minio 目录挂载到容器的 /data 目录,以持久化存储数据。
  • -e "MINIO_ROOT_USER=admin":设置 MinIO 的 root 用户名。
  • -e "MINIO_ROOT_PASSWORD=admin123":设置 MinIO 的 root 用户密码。
  • minio/minio:使用 MinIO Docker 镜像。
  • server /data --console-address ":9001":启动 MinIO 服务器并指定数据目录和控制台地址。
    在这里插入图片描述

4. 访问 MinIO 控制台

启动容器后,您可以通过浏览器访问 MinIO 控制台:

  • 控制台地址:http://YOUR_SERVER_IP:9001
  • 使用您在环境变量中设置的 root 用户名和密码(例如 adminadmin123)登录。

5. 验证 MinIO API

您还可以通过 MinIO API 端口访问对象存储服务:

  • API 地址:http://YOUR_SERVER_IP:9000

6. 管理和使用 MinIO

登录到 MinIO 控制台后,您可以创建存储桶、上传文件、管理用户和策略等。

示例 Docker Compose 文件(可选)

如果您更喜欢使用 Docker Compose 来管理容器,可以创建一个 docker-compose.yml 文件:

yaml 复制代码
version: '3.8'

services:
  minio:
    image: minio/minio
    container_name: minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: admin123
    volumes:
      - /mnt/data/minio:/data
    command: server /data --console-address ":9001"

然后使用以下命令启动 MinIO 服务:

sh 复制代码
docker-compose up -d

Ubuntu安装MinIo

1. 更新系统包

首先,确保您的系统包是最新的:

sh 复制代码
sudo apt update
sudo apt upgrade -y

2. 下载 MinIO 二进制文件

从 MinIO 官方网站下载最新的 MinIO 服务器二进制文件:

sh 复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/minio

3. 安装 MinIO

将下载的 MinIO 二进制文件移动到 /usr/local/bin 目录,并赋予执行权限:

sh 复制代码
sudo mv minio /usr/local/bin/
sudo chmod +x /usr/local/bin/minio

4. 创建数据目录

为 MinIO 创建一个数据目录:

sh 复制代码
sudo mkdir -p /mnt/data/minio

5. 创建 MinIO 用户(可选)

为了安全起见,您可以创建一个专门用于运行 MinIO 的用户:

sh 复制代码
sudo useradd -r minio-user -s /sbin/nologin

然后将数据目录的所有权设置为 minio-user

sh 复制代码
sudo chown -R minio-user:minio-user /mnt/data/minio

6. 创建 MinIO 服务文件

创建一个 systemd 服务文件,以便管理 MinIO 服务:

sh 复制代码
sudo nano /etc/systemd/system/minio.service

添加以下内容:

ini 复制代码
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
User=minio-user
Group=minio-user
EnvironmentFile=-/etc/default/minio
ExecStart=/usr/local/bin/minio server /mnt/data/minio --console-address ":9001"
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

7. 创建环境变量文件

创建一个环境变量文件,以便设置 MinIO 的配置:

sh 复制代码
sudo nano /etc/default/minio

添加以下内容:

sh 复制代码
# MinIO 环境变量

# MinIO 访问密钥和密钥
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123

# MinIO 数据目录
MINIO_VOLUMES="/mnt/data/minio"

# MinIO 控制台地址
MINIO_OPTS="--console-address :9001"

8. 启动并启用 MinIO 服务

重新加载 systemd 配置,并启动和启用 MinIO 服务:

sh 复制代码
sudo systemctl daemon-reload
sudo systemctl start minio
sudo systemctl enable minio

9. 验证 MinIO 运行状态

检查 MinIO 服务的状态,确保其正常运行:

sh 复制代码
sudo systemctl status minio

10. 访问 MinIO 控制台

启动 MinIO 服务后,您可以通过浏览器访问 MinIO 控制台:

  • 控制台地址:http://YOUR_SERVER_IP:9001
  • 使用您在环境变量中设置的 root 用户名和密码(例如 adminadmin123)登录。

11. 配置防火墙(可选)

如果您的 Ubuntu 系统启用了 UFW 防火墙,请确保允许 MinIO 端口通过防火墙:

sh 复制代码
sudo ufw allow 9000
sudo ufw allow 9001
相关推荐
serve the people39 分钟前
python环境搭建 (九) 极简日志工具 loguru
linux·服务器·python
yuankoudaodaokou1 小时前
革新自动化产线调试,扫描生成点云精准引导机器人路径
运维·python·机器人·自动化
wengad1 小时前
podman搭建nginx服务
运维·nginx·podman
阡陌..1 小时前
Linux下的vi和vim使用方法
linux·运维·vim
hweiyu001 小时前
Linux 命令:diff
linux·运维·服务器
姚远Oracle ACE1 小时前
Step-by-Step: 在 Linux 上使用 VMware 安装 Oracle 26ai RAC 数据库
linux·数据库·oracle
进击切图仔1 小时前
基于 linux 20.04 构建 ros1 noetic 开发环境 -离线版本
linux·运维·服务器
starcat20021 小时前
ESXi安装直连显卡的KDE-NEON
linux
EmbedLinX1 小时前
Linux 之设备驱动
linux·服务器·c语言
vortex51 小时前
Alpine Linux syslinux 启动加固(密码保护)
linux·服务器·网络