minio在redhat7.9上面的单节点单驱动离线安装(docker)

问题

最近需要在红帽上面离线安装minio,并且还是要离线安装到服务器中的Docker里面去。

检查服务器磁盘

bash 复制代码
# lsblk -f
NAME          FSTYPE      LABEL UUID                                   MOUNTPOINT
sda
├─sda1        xfs               xxxxsx-xxx-xxx-sxx   /boot
└─sda2        LVM2_member       xxxxsx-xxx-xxx-sxx 
  ├─rhel-root xfs               xxxxsx-xxx-xxx-sxx    /
  ├─rhel-swap swap              xxxxsx-xxx-xxx-sxx 
  └─rhel-home xfs               xxxxsx-xxx-xxx-sxx    /home

从lsblk -f命令可以看出,这台服务器只有一个磁盘,使用了xfs的格式。minio是建议用xfs格式的,而且,如果想要部署单节点多驱动的方式安装,最好是有4个以上磁盘。我们这里选择单节点单驱动,毕竟只有1台服务器1块磁盘,一般业务系统也够用了。

检查服务器Linux发行版

bash 复制代码
# cat /etc/*release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.9 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.9 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.9:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.9
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.9"
Red Hat Enterprise Linux Server release 7.9 (Maipo)
Red Hat Enterprise Linux Server release 7.9 (Maipo)

从这个命令,就可以确认是红帽7.9企业版。

离线导入minio镜像

拉取Docker minio镜像

现在回到我们本地开发环境,然后,使用docker命令获取minio在quay上面的镜像:

bash 复制代码
docker pull quay.io/minio/minio

然后,再把刚刚拉取下来的minio镜像,导出为一个普通文件:

bash 复制代码
docker save -o minio_image.docker quay.io/minio/minio

得到minio_image.docker文件后,将这个镜像文件通过sftp上传到服务器上面。然后,开始在服务器上面导入这个minio文件,命令如下:

bash 复制代码
docker load -i minio_image.docker

导入完成后,使用如下命令检查:

bash 复制代码
docker images | grep mini
quay.io/minio/minio   latest              xxxxx        13 hours ago        151MB

创建minio配置文件

bash 复制代码
vim /etc/default/minio

内容如下:

bash 复制代码
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me

# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.

MINIO_VOLUMES="/mnt/data"

# MINIO_OPTS sets any additional commandline options to pass to the MinIO server.
# For example, `--console-address :9001` sets the MinIO Console listen port
MINIO_OPTS="--console-address :9001"

创建docker容器

准备一个文件数据目录:

bash 复制代码
mkdir -p ~/minio/data

创建并运行mini容器:

bash 复制代码
podman run -dt                                  \
  -p 9000:9000 -p 9001:9001                     \
  -v ~/minio/data:/mnt/data                             \
  -v /etc/default/minio:/etc/config.env         \
  -e "MINIO_CONFIG_ENV_FILE=/etc/config.env"    \
  --name "minio"                          \
  quay.io/minio/minio server --console-address ":9001"

使用如下命令,查看容器启动日志:

bash 复制代码
docker logs minio

如果出现如下错误:

bash 复制代码
standard_init_linux.go:211: exec user process caused "exec format error"

可能是本地拉取到的docker镜像与服务器要使用的docker镜像,cpu架构不一致,可以通过如下命令查看服务器cpu架构:

bash 复制代码
arch

服务器结果为x86_64,而我的本地开发机为mac m1属于arm架构。需要重新拉取指定架构的docker镜像重现导入到服务器中:

bash 复制代码
# 删除旧镜像
docker image rm quay.io/minio/minio
docker pull --platform linux/amd64 quay.io/minio/minio

重现导入docker镜像之后,重新创建docker镜像。

测试

最后,在web页面登录minio。效果如下:

总结

minio单节点单驱动,对于一般小项目来说,还是挺容易的。

参考

相关推荐
志栋智能5 小时前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡5 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB6 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
欧米欧6 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery6 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo7 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
时间售卖铺7 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
前端精髓7 小时前
调用大模型API
运维·服务器·microsoft
跨境小彭8 小时前
Temu 全托管模式下,SKU 利润核算的实践复盘
大数据·运维·人工智能·自动化·temu