笔者在部署minio容器时,遇到了以上问题。起初以为是我端口被占用或存储空间不足,经过检测排除了以上问题。
以下是最初的安装命令:
docker run -d --name minio --restart=always -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -v /home/data:/data -v /home/config:/root/.minio --network my-net minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
通过查阅多篇blog,得知MINIO_ACCESS_KEY至少需要5位,MINIO_SECRET_KEY最少要8位。且需要为minio容器配置一个静态端口。
在检查后修改为如下命令:
docker run -d --name minio --restart=always -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio" -v /home/data:/data -v /home/config:/root/.minio --network my-net minio/minio:RELEASE.2021-06-17T00-10-46Z server /data --console-address ":9000" --address ":9090"
仍然无法解决问题,minio容器还是只能在创建之后的不到一秒内运行,随即停止且重启无效。
再查,得知某个版本过后的minio容器在首次启动时使用MINIO_ROOT_USER和MINIO_ROOT_PASSWORD进行鉴权,且默认情况下会使用镜像内部的minio-client进行配置。可以在docker run指令中手动跳过该配置。另外,一开始拉取的minio镜像是三年前发布的。minio更新的速度感觉挺快,不知道跟版本有没有关系。于是我拉取成了最新的镜像。
得到如下指令:
docker run -d --name minio --restart=always -p 9000:9000 --env MINIO_ROOT_USER="minio" --env MINIO_ROOT_PASSWORD="minio123" --env MINIO_SKIP_CLIENT="yes" -v /root/minio/minio-data:/data -v /root/minio/minio-config:/root/.minio --network my-net minio/minio server /data --console-address ":9000" --address ":9001"
此时minio容器运行在虚拟机的9000端口。经过检验,此时的minio容器能够正常持续运行。
但是这个命令只把容器内的9000端口映射到主机的9000端口,而没有把9001端口映射到主机。而我又指定了控制台是9000端口、主服务是9001端口。所以找到了错误:没有在映射的主机上指定外界访问和上传的端口。解决方法是指定一个console端口和一个主服务的端口。
最后指令如下:
docker run -d --name minio --restart=always -p 9000:9000 -p 9001:9001 --env MINIO_ROOT_USER="minio" --env MINIO_ROOT_PASSWORD="minio123" --env MINIO_SKIP_CLIENT="yes" -v /root/minio/minio-data:/data -v /root/minio/minio-config:/root/.minio --network hm-net minio/minio server /data --console-address ":9000" --address ":9001"
现在能通过9000端口正常访问控制台,也能通过9001端口正常上传文件。