一、docker配置镜像源问题
- docker国内镜像可能会无法使用,建议多配置数据源
- 使用"i",进入编辑。使用"ESC"->":wq"保存并退出
vi /etc/docker/daemon.json
{"registry-mirrors":["https://4xxwxhl6.mirror.aliyuncs.com","https://mirror.iscas.ac.cn","https://docker.rainbond.cc","https://docker.nju.edu.cn","https://6kx4zyno.mirror.aliyuncs.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://dockerproxy.com"]}
二、docker拉取镜像
- 切换用户至root
- 拉取镜像源
docker pull minio/minio
- 配置挂载目录和上传文件目录
mkdir-p /opt/minio/config
mkdir-p /opt/minio/data
- 创建容器并运行
docker run \-p9000:9000 \-p9001:9001 \--net=host \--name minio \-d--restart=always \-e"MINIO_ACCESS_KEY=minio"\-e"MINIO_SECRET_KEY=minio123"\-v /opt/minio/data:/data \-v /opt/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9001"-address":9000"
注意:
- 设置密码时,3-8个字符,但是我使用"123456",容器运行成功,但是无法访问,停止容器(docker stop minio)删除容器(docker rm minio),重新设置密码
- 使用 虚拟机ip:9001访问
- springBoot集成的话,使用9000端口
查看minio
- 使用虚拟机ip:9001查看
1、新建Bucket
- 点击左侧Buckets
- 为Bucket取一个合适的名字
- 新建Bucket
2、 新建Access Key
- 点击左侧 Access Keys,
- 记下Access Key 和 Secter Key
- 设置name
- 点击create新建Browser 需要 Access Key 和 Secter Key 来访问Bucket
虚拟机下载安装Cpolar
- 使用脚本一键安装
curl-L https://www.cpolar.com/static/downloads/install-release-cpolar.sh |sudobash
- 安装成功,提示使用
systemctl enable cpolar
命令和systemctl start cpolar
命令 - 使用
systemctl enable cpolar
命令 启用cpolar - 使用
systemctl start cpolar
命令 启动cpolar - 在浏览器使用 虚拟机ip:9200 访问cpolar
- 注册用户
- 返回登录
- 点击左侧隧道管理,创建新隧道
- 点击在线隧道列表,查看新建隧道- 由于后续安装的elasticsearch端口也为9200,故在此处贴上修改cpolar端口- 查看9200端口信息- 停止正在运行的cpolar
systemctl stop cpolar
- 使用find / -name cpolar.yml 2>/dev/null
查看yml文件- 查看官网教程- 执行vi /usr/local/etc/cpolar/cpolar.yml
- 添加配置client_dashboard_addr: 127.0.0.1:9300
,注意,官网修改只能虚拟机内部访问,外部无法访问- 如果需要外部访问的话,此处需要改为 虚拟机ip:端口号- 启动服务sudo systemctl start cpolar
- 未停止服务的话,使用重启服务sudo systemctl restart cpolar
- 测试是否修改成功- 如果在线隧道列表无隧道,前往隧道管理启动相应隧道
SpringBoot集成使用
- 在pom中引入jar包
#低版本的okhttp会报错提示 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.7</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.10.0</version></dependency>
- 上传代码测试
@Testvoiduploadtest(){try{String endPoint ="8.tcp.cpolar.top";int port =13981;String accessKey ="YsBvivSZUGsRLfqL2JXL";String secretKey ="yuLLwPoxFjUUvn45bQ3rwmH49Pf8wGFGkZTpNGXa";MinioClient minioClient =MinioClient.builder().endpoint(endPoint,port,false).credentials(accessKey,secretKey).build();// 定义桶名和对象名称String bucketName ="gulimall";String objectName ="test.jpg";String filePath ="E:\\uploadFile\\gulimall/p23.png";// 本地文件路径
minioClient.uploadObject(UploadObjectArgs.builder().bucket(bucketName).object(objectName).filename(filePath).build());System.out.println("上传测试成功........");}catch(Exception e){System.out.println("Error"+ e);}}
- 提交报错(提示 请求时间和服务器时间之间的差异太大)
Errorerror occurred
ErrorResponse(code =RequestTimeTooSkewed, message =The difference between the request time and the server's time is too large., bucketName =null, objectName =null, resource =/gulimall, requestId =17EC67767F4197ED, hostId = dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8)
- 在虚拟机使用chronyd同步时间
- 使用
yum install chronyd
安装 - 启用chronyd 服务
systemctl enable chronyd
- 启动 chronyd 服务
systemctl start chronyd
- 同步时间
chronyc makestep
- 使用
date
检查 (我再次检查,发现时间依旧不对,最后检查发现,时区未设置为上海) - 设置时区为上海
timedatectl set-timezone Asia/Shanghai
- 再次使用
date
检查,时间调整成功 - 再次测试提交,测试成功
- 下载代码测试
@TestvoiddownLoad(){try{String endPoint ="8.tcp.cpolar.top";int port =13981;String accessKey ="YsBvivSZUGsRLfqL2JXL";String secretKey ="yuLLwPoxFjUUvn45bQ3rwmH49Pf8wGFGkZTpNGXa";// 创建 MinIO 客户端MinioClient minioClient =MinioClient.builder().endpoint(endPoint,port,false).credentials(accessKey, secretKey).build();String bucketName ="gulimall";String objectName ="test.jap";String filePath ="E:\\downloadFile\\gulimall/p23.png";// 本地文件路径// 下载文件
minioClient.downloadObject(DownloadObjectArgs.builder().bucket(bucketName).object(objectName).filename(filePath).build());System.out.println("文件下载成功: "+ filePath);}catch(Exception e){System.out.println("Error occurred: "+ e);}}
通过地址访问上传内容
- 点击自己的bucket
- 设置自己的bucket为公开
- 点击Access Policy后面的小铅笔或者下面的public
- 从private改为publlic
- 查看上传的文件地址
- 浏览器输入 虚拟机ip:9000/ 上传的文件地址
本文转载自: https://blog.csdn.net/LjH01250/article/details/141297679
版权归原作者 上官小弑 所有, 如有侵权,请联系我们删除。
版权归原作者 上官小弑 所有, 如有侵权,请联系我们删除。