【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
相关推荐
leoufung12 分钟前
vim 多个关键字高亮插件介绍
linux·编辑器·vim
Karoku0661 小时前
【CI/CD】CI/CD环境搭建流程和持续集成环境配置
运维·ci/cd·docker·容器·kubernetes·prometheus
Nerd Nirvana3 小时前
软考—系统架构设计(案例 | 论文)
linux·系统架构·软件工程·软考·计算机基础
勤奋的凯尔森同学4 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
技术小齐8 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风8 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
打不了嗝 ᥬ᭄9 小时前
Linux的权限
linux
落幕9 小时前
C语言-进程
linux·运维·服务器
深度Linux9 小时前
C++程序员内功修炼——Linux C/C++编程技术汇总
linux·项目实战·c/c++
chenbin5209 小时前
Jenkins 自动构建Job
运维·jenkins