MinIO 介绍
MinIO是一个对象存储解决方案,它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能。 MinIO有能力在任何地方部署 - 公有云或私有云,裸金属基础设施,编排环境,以及边缘基础设施。
MinIO 安装
MinIO 支持多种安装方式,包括二进制安装、Docker安装、Kubernetes安装等。
这里我们使用docker安装MinIO单节点版本。
1.拉取 MinIO 镜像
docker pull minio/minio:RELEASE.2022-01-04T07-41-07Z
这里我们拉取的是2022-01-04T07-41-07Z版本,这个是因为在使用standalone或filesystem模式的老版本minio中存储的是原文件,配合docker的目录挂载/映射,可以实现文件原样存储。
2.创建数据目录
mkdir -p /opt/minio/config
mkdir -p /opt/minio/data
3.运行容器
docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
--restart=always \
-v /opt/minio/data:/data \
-v /opt/minio/config:/root/.minio \
-e "MINIO_ACCESS_KEY=myminioadmin" \
-e "MINIO_SECRET_KEY=myminioadmin" \
minio/minio:RELEASE.2022-01-04T07-41-07Z \
server /data \
--console-address ":9001"
- docker run: Docker 的命令,用于创建并启动一个新的容器。
- -d: 表示以 detached 模式运行容器,即在后台运行。
- -p 9000:9000: 将容器的 9000 端口映射到宿主机的 9000 端口。MinIO 默认使用 9000 端口进行 API 通信。
- -p 9001:9001: 将容器的 9001 端口映射到宿主机的 9001 端口。这是 MinIO 控制台的端口。
- –name minio: 为容器指定一个名称,这里设置为 minio。
- –restart=always: 设置容器的重启策略,这里表示容器在退出时总是尝试重启。
- -e “MINIO_ACCESS_KEY=myminioadmin”: 设置环境变量 MINIO_ACCESS_KEY,这是访问 MinIO 服务时使用的“用户名”。
- -e “MINIO_SECRET_KEY=myminioadmin”: 设置环境变量 MINIO_SECRET_KEY,这是访问 MinIO 服务时使用的“密码”。
- -v /opt/minio/data:/data: 使用 Docker 的卷(volume)将宿主机上的 /opt/minio/data 目录挂载到容器内的 /data 目录。这是 MinIO 存储数据的地方。
- -v /opt/minio/config:/root/.minio: 将宿主机上的 /opt/minio/config 目录挂载到容器内的 /root/.minio 目录。这是存放 MinIO 配置的地方。
- minio/minio:RELEASE.2022-01-04T07-41-07Z: 指定要使用的 Docker 镜像,这里是 MinIO 的官方镜像。
- server /data: 这是传递给 MinIO 镜像的命令,指示它以服务器模式启动,并且数据存储在 /data 目录。
- –console-address “:9001”: 指定 MinIO 控制台的监听地址和端口。
4.访问 MinIO 控制台
通过浏览器访问 http://<你的IP地址>:9001,使用步骤 3 中设置的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 作为用户名和密码登录。
5.重启,停止和删除容器
重启容器:
docker restart minio
如果需要停止 MinIO 容器,可以使用以下命令:
docker stop minio
删除容器:
docker rm minio
6.开启TLS访问
要在 Docker 中部署支持 SSL 的 MinIO 容器,你需要拥有 SSL 证书(public.crt)和私钥文件(private.key)。
在opt/minio/config目录下创建certs文件夹,将 SSL 证书和私钥放在certs文件夹下,重启minio容器。
注意:部署ssl证书后, MinIO 控制台的地址会变为https://<你的域名>:9001。
如果登录报错Invalid Login:Post “https://172.17.0.3:9000/”: x509: cannot validate certificate for 172.17.0.3 because it doesn’t contain any IP SANs,
需要在启动minio容器添加环境变量 MINIO_SERVER_URL
完整命令如下:
docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
--restart=always \
-v /opt/minio/data:/data \
-v /opt/minio/config:/root/.minio \
-e "MINIO_ACCESS_KEY=myminioadmin" \
-e "MINIO_SECRET_KEY=myminioadmin" \
-e "MINIO_SERVER_URL=https://你的域名:9000" \
minio/minio:RELEASE.2022-01-04T07-41-07Z \
server /data \
--console-address ":9001"
7. 注意事项
- 请确保 MinIO 数据目录 /opt/minio/data 持久化在宿主机上,以防止数据丢失。
- 生产环境中,应考虑设置更复杂的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY,并采用更安全的部署方式。
- 要在 Docker 中部署支持 SSL 的 MinIO 容器,你需要拥有 SSL 证书和私钥文件。在