Docker部署Minio(详细步骤)

本文详细介绍了如何在Docker中拉取并部署MinIO容器,包括创建数据存储目录、设置环境变量、端口映射以及访问Web界面的过程。遇到问题时,提供了可能的解决方案如检查虚拟机IP和开启远程访问端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下述步骤中的命令假设您已经安装了Docker。

如果还没有安装Docker,先进行Docker的安装再进行下面的操作
参考这篇:Linux安装Docker

下面是使用命令在Docker上部署MinIO服务的步骤:

1. 运行以下命令拉取MinIO的Docker镜像:

docker pull minio/minio

默认拉取最新版本的镜像
在这里插入图片描述

使用docker images镜像查看命令,已经成功拉取到本地
在这里插入图片描述

2. 创建一个名为minio-data的目录,用于存储MinIO的数据。

可以选择在任何位置创建此目录。

mkdir minio-data

我这里是在usr/local目录下创建minio-data文件夹

使用cd usr/local命令进入usr/local目录
然后使用mkdir minio-data命令创建minio-data文件夹
在这里插入图片描述

3. 运行以下命令来启动MinIO容器,并将主机的9000端口映射到容器的9000端口:

容器创建命令:

 docker run \
--name minio \
-p 9000:9000  \
-p 9090:9090  \
-d \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio123" \
-v /usr/local/minio-data:/data \
-v /usr/local/minio-config:/root/.minio \
minio/minio server  /data --console-address ":9090" --address ":9000"


MINIO_ROOT_USER=minio,这个参数是指定登录时的用户名为minio,
MINIO_ROOT_PASSWORD=minio123,这个参数是指定登录时的密码为minio123,

下面是对这个命令的详细解释:

  1. docker run:这是Docker命令行工具用来运行一个新容器的命令。

  2. --name minio:这个参数为容器指定了一个名称,这里名称被设置为minio。使用名称可以更方便地管理容器。

  3. -p 9000:9000:这个参数将容器内的9000端口映射到宿主机的9000端口。MinIO服务默认使用9000端口提供API服务。

  4. -p 9090:9090:这个参数将容器内的9090端口映射到宿主机的9090端口。这是MinIO的控制台(Console)端口,用于访问MinIO的图形用户界面。

  5. -d:这个参数告诉Docker以“detached”模式运行容器,即在后台运行。

  6. -e "MINIO_ROOT_USER=minio":设置环境变量MINIO_ROOT_USER,这是访问MinIO服务的用户名称,这里设置为minio

  7. -e "MINIO_ROOT_PASSWORD=minio123":设置环境变量MINIO_ROOT_PASSWORD,这是访问MinIO服务的用户密码,这里设置为minio123

  8. -v /usr/local/minio-data:/data:这个参数将宿主机的目录/usr/local/minio-data挂载到容器的/data目录。MinIO会将所有数据存储在这个目录。

  9. -v /usr/local/minio-config:/root/.minio:这个参数将宿主机的目录/usr/local/minio-config挂载到容器的/root/.minio目录。这个目录用于存储MinIO的配置文件和数据。

  10. minio/minio:这是要运行的Docker镜像的名称,这里使用的是官方发布的MinIO镜像。

  11. server /data:这是传递给MinIO程序的命令行参数,告诉MinIO以服务器模式运行,并且使用/data目录作为其数据存储位置。

  12. --console-address ":9090":这个参数指定MinIO控制台服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9090端口。

  13. --address ":9000":这个参数指定MinIO API服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9000端口。

执行完之后,就会发现有一个容器在运行了
在这里插入图片描述

4. 访问web界面

容器启动之后,就可以通过访问http://192.168.200.128:9090来访问MinIO的Web界面,输入刚才设置的账号和密码进行登录。(我的虚拟机ip是192.168.200.128,这里输入自己的虚拟机ip即可)

账号:minio
密码:minio123

登录页面,登录成功页面图片
在这里插入图片描述
在这里插入图片描述

最后就可以使用MinIO来上传、下载和管理对象存储。

问题解决:

虚拟机ip查看
输入命令ip addr找ens33,在这个下面查看ip
在这里插入图片描述

中间碰到过,容器启动后,访问不进去的情况,我这里的原因是,创建容器的命令有些问题,更换为正确的命令后就好了。中间尝试了2375端口的开启,我也不知道我这边访问不进去的情况有没有这个原因。
我将链接放到下面,如果照我上面的命令创建容器并启动之后,无法访问web界面,那就再试一下这个方法。

Docker 开启2375 远程访问端口

<think>我们正在讨论如何在虚拟机中使用Docker部署MinIO。根据提供的引用内容,我们可以整理出以下步骤:1.首先,确保虚拟机中已安装Docker。如果没有安装,需要先安装Docker。2.拉取MinIODocker镜像(如果尚未存在,Dockerrun命令会自动拉取)。3.使用dockerrun命令启动MinIO容器,并配置相关参数。具体命令示例在引用[2]中给出:```bashdockerrun-p9000:9000--net=host--nameminio-d--restart=always-e"MINIO_ACCESS_KEY=minioadmin"-e"MINIO_SECRET_KEY=minioadmin"-v/usr/local/docker/minio/data:/data-v/usr/local/docker/minio/config:/root/.miniominioserver/data--console-address":9090"-address":9000"```解释参数:-`-p9000:9000`:将容器的9000端口映射到主机的9000端口(用于API访问)。-`--net=host`:使用主机网络模式,这样可以简化网络配置(但注意,如果使用主机网络模式,则-p端口映射可能无效,因为容器直接使用主机网络。根据需求,可以选择移除`--net=host`,或者保留并使用端口映射)。-`--nameminio`:容器名称。-`-d`:后台运行。-`--restart=always`:容器退出时总是重启。-`-e`:设置环境变量,这里设置访问密钥和秘密密钥(示例中为minioadmin,生产环境应更改)。-`-v`:挂载卷,将主机目录挂载到容器内,用于持久化存储数据和配置。-`minioserver/data`:启动MinIO服务器,数据目录为/data。-`--console-address":9090"`:控制台端口(Web管理界面)为9090。-`-address":9000"`:API端口为9000。注意:上述命令中同时指定了控制台地址和API地址,并且使用了主机网络模式(--net=host)。如果使用主机网络模式,那么容器将使用宿主机的网络,此时端口映射(-p)是不必要的,因为容器直接使用主机端口。但命令中仍然有`-p9000:9000`,这可能会产生冲突。因此,建议根据实际情况选择:方案一:使用主机网络(移除-p参数)```bashdockerrun--net=host--nameminio-d--restart=always-e"MINIO_ACCESS_KEY=minioadmin"-e"MINIO_SECRET_KEY=minioadmin"-v/usr/local/docker/minio/data:/data-v/usr/local/docker/minio/config:/root/.miniominioserver/data--console-address":9090"-address":9000"```方案二:不使用主机网络(使用端口映射,移除--net=host)```bashdockerrun-p9000:9000-p9090:9090--nameminio-d--restart=always-e"MINIO_ACCESS_KEY=minioadmin"-e"MINIO_SECRET_KEY=minioadmin"-v/usr/local/docker/minio/data:/data-v/usr/local/docker/minio/config:/root/.miniominioserver/data--console-address":9090"-address":9000"```这里我们增加了9090端口的映射,以便访问控制台。步骤指南:1.创建用于持久化的目录(根据命令中的挂载点):```bashmkdir-p/usr/local/docker/minio/datamkdir-p/usr/local/docker/minio/config```2.执行dockerrun命令(选择上述方案之一)。例如选择方案二:```bashdockerrun-p9000:9000-p9090:9090\--nameminio\-d\--restart=always\-e"MINIO_ACCESS_KEY=minioadmin"\-e"MINIO_SECRET_KEY=minioadmin"\-v/usr/local/docker/minio/data:/data\-v/usr/local/docker/minio/config:/root/.minio\minioserver/data\--console-address":9090"\-address":9000"```3.等待容器启动,然后可以通过虚拟机IP:9090访问MinIO控制台(使用设置的访问密钥和秘密密钥登录)。注意:如果虚拟机有防火墙,确保开放9000和9090端口。此外,引用[1]中提到MinIO是对象存储,用于存储各种数据,并且功能强大。部署完成后,可以整合SpringBoot等应用使用。[^1]:Docker部署minio存储及整合springboot使用。[^2]:Docker部署Minio(服务器上部署Minio)。§§相关问题§§1.如何修改MinIO的访问密钥和秘密密钥?2.MinIO的数据持久化是如何工作的?3.如何在Docker中更新MinIO容器?4.MinIO控制台无法访问可能的原因是什么?</think>### 在虚拟机中使用Docker部署MinIO的指南 #### 1️⃣ **前提条件** - 已安装虚拟机(如VMware/VirtualBox) - 虚拟机中已安装Docker([官方安装指南](https://docs.docker.com/engine/install/)) - 预留至少1GB内存(MinIO要求) #### 2️⃣ **部署步骤** **(1) 创建持久化存储目录** ```bash mkdir -p /minio/data /minio/config ``` **(2) 启动MinIO容器** ```bash docker run -d \ -p 9000:9000 \ # API端口 -p 9090:9090 \ # 控制台端口 --name minio \ -v /minio/data:/data \ # 数据持久化 -v /minio/config:/root/.minio \ # 配置持久化 -e "MINIO_ROOT_USER=admin" \ # 登录用户名 -e "MINIO_ROOT_PASSWORD=your_strong_password" \ # 登录密码 --restart=always \ minio/minio server /data --console-address ":9090" ``` > 💡 说明: > - 替换`your_strong_password`为高强度密码 > - 数据将永久保存在虚拟机`/minio/data`目录[^1] **(3) 验证部署** ```bash docker ps | grep minio # 应显示运行中的容器 curl http://localhost:9000 # 返回XML响应即成功 ``` #### 3️⃣ **访问控制台** 1. 在虚拟机浏览器访问: ``` http://localhost:9090 ``` 2. 或通过宿主机访问(需配置端口转发): ``` http://<虚拟机IP>:9090 ``` 3. 使用步骤(2)设置的用户名密码登录 #### 4️⃣ **基本使用** - 登录后创建存储桶(Bucket) - 通过API端点`http://<IP>:9000`进行编程访问 - Spring Boot集成示例配置: ```yaml minio: endpoint: http://虚拟机IP:9000 access-key: admin secret-key: your_strong_password bucket: my-bucket ``` #### 5️⃣ **常见问题处理** - **端口冲突**:修改`-p`参数映射端口(如`-p 9001:9000`) - **权限不足**:添加`--user $(id -u):$(id -g)`到docker命令 - **磁盘空间**:确保虚拟机有足够存储(建议预留10GB+) > ⚠️ **安全提示**:生产环境务必修改默认密码,建议使用TLS加密传输[^2] [^1]: MinIO数据持久化通过Docker卷映射实现,确保容器重启后数据不丢失。 [^2]: Docker部署MinIO时可通过`-v`挂载SSL证书目录实现HTTPS访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿BAIKAL巛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值