当前位置: 代码网 > 服务器>服务器>云虚拟主机 > 使用Docker搭建minio的详细图文教程

使用Docker搭建minio的详细图文教程

2024年11月27日 云虚拟主机 我要评论
一、docker配置镜像源问题docker国内镜像可能会无法使用,建议多配置数据源使用"i",进入编辑。使用"esc"->":wq"保

一、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 \
-p 9000:9000 \
-p 9001: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 | sudo bash

  • 安装成功,提示使用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>
  • 上传代码测试
    @test
    void uploadtest(){
        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 检查,时间调整成功

  • 再次测试提交,测试成功

  • 下载代码测试
@test
    void download(){
        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/ 上传的文件地址

总结 

到此这篇关于使用docker搭建minio的文章就介绍到这了,更多相关docker搭建minio内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com