使用Docker搭建minio的詳細圖文教程
一、docker配置鏡像源問題
- docker國內鏡像可能會無法使用,建議多配置數(shù)據(jù)源
- 使用"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
- 創(chuàng)建容器并運行
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

- 注冊用戶

- 返回登錄

- 點擊左側隧道管理,創(chuàng)建新隧道

- 點擊在線隧道列表,查看新建隧道

由于后續(xù)安裝的elasticsearch端口也為9200,故在此處貼上修改cpolar端口
查看9200端口信息

停止正在運行的cpolar
systemctl stop cpolar
使用
find / -name cpolar.yml 2>/dev/null查看yml文件
查看官網(wǎng)教程

執(zhí)行
vi /usr/local/etc/cpolar/cpolar.yml
添加配置
client_dashboard_addr: 127.0.0.1:9300,注意,官網(wǎng)修改只能虛擬機內部訪問,外部無法訪問
如果需要外部訪問的話,此處需要改為 虛擬機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檢查 (我再次檢查,發(fā)現(xiàn)時間依舊不對,最后檢查發(fā)現(xiàn),時區(qū)未設置為上海) - 設置時區(qū)為上海
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";
// 創(chuàng)建 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內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker跨服務器通信Overlay解決方案(上)之 Consul單實例
這篇文章主要介紹了Docker跨服務器通信Overlay解決方案(上)之 Consul單實例,本文通過場景分析實例代碼相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
docker啟動mysql及-e MYSQL_ROOT_PASSWORD=my-secret-pw問題解決
本文主要介紹了docker啟動mysql及-e MYSQL_ROOT_PASSWORD=my-secret-pw問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
Docker容器搭建運行python的深度學習環(huán)境的方法
本文主要介紹了Docker容器搭建運行python的深度學習環(huán)境的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
Docker鏡像拉取報錯:Error response from daemon: 
這篇文章主要介紹了Docker鏡像拉取報錯:Error response from daemon: Get https://registry-1.docker.io/v2/的問題解決,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
在Idea中使用Docker部署SpringBoot項目的詳細步驟
這篇文章主要介紹了在Idea中使用Docker部署SpringBoot項目的詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
docker-compose+nginx部署前后端分離的項目實踐
本文主要介紹了docker-compose?+?nginx部署前后端分離的項目,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03

