玩一个前后端的项目,需要用到对象存储器,于是使用开源的MinIO。期间以Docker方式搭建遇到某些坑,此处仅以博客的方式记录下来
此处笔者采用网上在线安装的方式,几条命令就可以搞定了
# 安装yum工具
yum install -y yum-utils
# 设置 yum 仓库地址
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum 缓存
yum makecache fast
# 安装Docker服务
yum install -y docker-ce docker-ce-cli containerd.io
# 设置自启动Docker服务
systemctl enable docker
# 重启Docker服务
systemctl restart docker
# 检查Docker服务是否已经成功运行
systemctl status docker
如果使用的是云服务器,不建议关闭防火墙。如果没有关闭防火墙,那么启动docker容器的时候,需要在防火墙添加容器端口,否则无法访问。如果关闭了防火墙,则必须重启Docker服务,否则也会有问题。
# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙自启动
systemctl disable firewalld.service
# 重启Docker服务
systemctl restart docker
下载MinIO镜像
docker pull minio/minio
启动MinIO容器
docker run -p 9000:9000 -p 9001:9001 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minio" \
-e "MINIO_SECRET_KEY=minio123" \
-v /mydata/minio/data:/data \
-v /mydata/minio/config:/root/.minio \
minio/minio server --console-address ":9000" --address ":9001" /data
参数解释:
MINIO_ROOT_PASSWORD
的值必须大于或等于8个字符-v
,挂在数据卷,持久化数据minio/minio server /data
,这是启动MinIO Server的命令--console-address ":9000"
,指定访问控制台的端口号,不指定会访问不了--address ":9001"
,api端口号,不能与控制台端口号相同-p
指定2个端口号,否则物理机无法访问到虚拟机里面的minio容器的端口,最终会导致无法访问MinIO中的对象(比如无法访问图片)9000
是作为访问MinIO控制台的端口,而9001
是作为访问资源的端口,此处称该9001端口号为api端口号
(比如访问存储在MinIO中的图片)服务器IP:9001/桶名/资源名
访问地址:服务器IP:9000
账号:minio
密码:minio123
假如我上传了图片到MinIO,怎么访问这张图片?要使得局域网内任何人都能访问,当然如果MinIO是部署在云服务器上,任何人都能访问
思路:给桶设置一个读写的访问权限即可
输入地址:
MinIO所在服务器的IP:API端口号/桶名/文件名
此处我的图片的访问路径是:192.168.163.128:9001/asia/cc6388bfcec249b3ba5bbb91901f5ef9.png