docker安装MinIO全过程
作者:不懂敲代码的程序员
一、查看docker环境是否正常
在命令行使用 docker search minIO
:
docker search minIO
如果能查出来证明docker安装的没问题,然后开始下一步
二、下载minIO的镜像
docker pull minio/minio
三、创建minIO容器
minio官网:MinIO High Performance Object Storage — MinIO Object Storage for Container
查看所有镜像
docker images
创建并启动minIO容器:
这里的 \ 指的是命令还没有输入完,还需要继续输入命令,先不要执行的意思。
这里的9090端口指的是minio的客户端端口。虽然设置9090,但是我们在访问9000的时候,他也会自动跳到9090。
9000端口是minio的服务端端口,我们程序在连接minio的时候,就是通过这个端口来连接的。
-v就是docker run当中的挂载,这里的/root/docker/minio/data:/data意思就是将容器的/data目录和宿主机的/root/docker/minio/data目录做映射,这样我们想要查看容器的文件的时候,就不需要看容器当中的文件了。
注意在执行命令的时候,他是会自动在宿主机当中创建目录的。我们不需要手动创建。
minio所上传的文件默认都是存储在容器的data目录下的!
假如删除容器了宿主机当中挂载的目录是不会删除的。假如没有使用-v挂载目录,那他在宿主机的存储位置的文件会直接删除的。
宿主机的挂载目录一定是根目录,如果是相对路径会有问题。还有容器当中的目录也是必须是绝对路径(根路径就是带/的)。
所谓的挂载其实就是将容器目录和宿主机目录进行绑定了,操作宿主机目录,容器目录也会变化,操作容器目录,宿主机目录也会变化。这样做的目的 可以间接理解为就是数据持久化,防止容器误删,导致数据丢失的情况。
MINIO_ACCESS_KEY
:账号 MINIO_SECRET_KEY:密码 (正常账号应该不低于3位,密码不低于8位,不然容器会启动不成功)–console-address
指定客户端端口-d --restart=always
代表重启linux的时候容器自动启动–name minio
容器名称
docker run -p 9000:9000 -p 9090:9090 \ --name minio \ -d --restart=always \ -e "MINIO_ACCESS_KEY=admin" \ -e "MINIO_SECRET_KEY=admin123456" \ -v /root/docker/minio/data:/data \ -v /root/docker/minio/config:/root/.minio \ minio/minio server\ /data --console-address ":9090" -address ":9000"
执行之后,使用docker ps查看正在运行的容器:
docker ps
四、访问地址
http://127.0.0.1:9090
访问出来是这样的,就代表成功了!
五、安装遇到问题
如果运行容器之后客户端打不开,这时候可以通过 docker logs 容器id
查看日志。
1、问题一
刚开始我遇到一个这个问题,应该是说设置的账号密码长度有问题,正常账号应该不低于3位,密码不低于8位,不然容器会启动不成功。
错误:
ERROR Unable to validate credentials inherited from the shell environment: Invalid credentials
> Please provide correct credentials
HINT:
Access key length should be at least 3, and secret key length at least 8 characters
ERROR Unable to validate credentials inherited from the shell environment: Invalid credentials
> Please provide correct credentials
HINT:
Access key length should be at least 3, and secret key length at least 8 characters
2、问题二
假如不设置客户端端口,就会有以下警告。
3、问题三
一切都正常了,而且客户端也能打开,但是通过程序连接minio上传的时候报错了,错误信息:
上传失败The difference between the request time and the server's time is too
系统时区与硬件时区不一致导致的
timedatectl // 查看时区配置
安装ntpdate工具
yum -y install ntp ntpdate
设置系统时间与网络时间同步
ntpdate cn.pool.ntp.org
将系统时间写入硬件时间
hwclock --systohc
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。