本篇博客主要记录在Docker当中安装MinIO。
目录
- 一、查看docker环境是否正常
- 二、下载minIO的镜像
- 三、创建minIO容器
- 四、访问地址
- 五、安装遇到问题
- 1、问题一
- 2、问题二
- 3、问题三
一、查看docker环境是否正常
在命令行使用docker search minIO
:
如果能查出来证明docker安装的没问题,然后开始下一步
二、下载minIO的镜像
docker pull minio/minio
三、创建minIO容器
minio官网:https://docs.min.io/docs/minio-docker-quickstart-guide.html
查看所有镜像
docker images
创建并启动minIO容器:
- 这里的 \ 指的是命令还没有输入完,还需要继续输入命令,先不要执行的意思。
- 这里的9090端口指的是minio的客户端端口。虽然设置9090,但是我们在访问9000的时候,他也会自动跳到9090。
- 9000端口是minio的服务端端口,我们程序在连接minio的时候,就是通过这个端口来连接的。
-v
就是docker run当中的挂载,这里的/mydata/minio/data:/data
意思就是将容器的/data
目录和宿主机的/mydata/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=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /mydata/minio/data:/data \
minio/minio server \
/data --console-address ":9090" -address ":9000"
执行之后,使用docker ps查看正在运行的容器:
四、访问地址
访问出来是这样的,就代表成功了!
五、安装遇到问题
如果运行容器之后客户端打不开,这时候可以通过docker logs 容器id
查看日志。
1、问题一
刚开始我遇到一个这个问题,应该是说设置的账号密码长度有问题,正常账号应该不低于3位,密码不低于8位,不然容器会启动不成功。
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