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单节点单驱动,对于一般小项目来说,还是挺容易的。

参考

相关推荐
七夜zippoe8 小时前
DolphinDB 运维工具实战:自动化脚本体系设计与落地(2.0.x)
运维·dolphindb·自动化脚本·体系设计·体系落地
玉&心8 小时前
在Docker中部署前端和后端的实现
运维·docker·容器
wdfk_prog8 小时前
Docker 常用语法与命令:CLI、Dockerfile 与 Compose 速查
运维·docker·容器
无敌糖果8 小时前
K8S network namespace错误分析
docker·容器·kubernetes
skywalk81638 小时前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
姚不倒9 小时前
HAProxy 系列(四):多中间件统一 VIP 入口 — 架构模式与最佳实践
运维·中间件·架构·haproxy
happymade9 小时前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
郝开9 小时前
Docker Compose 模块化多环境配置规范指南:示例搭建Kibana 9.4.2
docker·容器·kibana
做萤石二次开发的哈哈9 小时前
萤石蓝海 AIoT 一站式工作台:海康LCD会议平板接入,多端大屏运维应用一站生成
运维·物联网·电脑·萤石开放平台·会议室管理·蓝海aiot一站式工作台·otap物模型
运维老郭9 小时前
Prometheus 监控 K8s 从入门到入坑:工作原理 + 部署实操 + 避坑指南
云原生·容器·kubernetes