docker搭建minio服務(wù)器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無法訪問
docker搭建minio服務(wù)器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無法訪問
搭建MinIo
docker run \ -itd \ -p 9000:9000 \ -p 9001:9001 \ --name minio \ -e "MINIO_ROOT_USER=賬戶" \ -e "MINIO_ROOT_PASSWORD=密碼" \ -v /dcoker/minio/data:/data \ quay.io/minio/minio server /data --console-address ":9001"
內(nèi)部搭建的MinIo服務(wù)器映射到外網(wǎng)后訪問文件資源一直報認(rèn)證異常,經(jīng)資料查閱minio有自己一套加密校驗邏輯,訪問時不可改動其桶名
解決內(nèi)網(wǎng)穿透minio訪問異常問題通
過nginx進(jìn)行代理,代理時不改變訪問路徑,外網(wǎng)映射時映射nginx的代理地址
docker pull nginx docker run --name nginx -d -p81:80 -itd nginx mkdir -p /usr/local/docker-soft/nginx/conf mkdir -p /usr/local/docker-soft/nginx/conf.d docker cp nginx:/etc/nginx/nginx.conf /usr/local/docker-soft/nginx/conf/nginx.conf docker cp nginx:/etc/nginx/conf.d/default.conf /usr/local/docker-soft/nginx/conf.d/default.conf docker rm -f nginx # 啟動鏡像并掛載 docker run --name nginx -d -it \ -p 80:80 \ -v /usr/local/docker-soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /usr/local/docker-soft/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \ nginx
修改Nginx配置
server { listen 80; # 這里對應(yīng)桶名 location /訪問的桶名/ { proxy_read_timeout 600s; # 配置minio訪問地址與桶名 proxy_pass http://minio服務(wù)器IP:端口/訪問的桶名/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Special-Delivery ""; proxy_set_header Access-Control-Allow-Origin ""; proxy_set_header Proxy-Client-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header X-Special-Delivery "stop-polling-our-interface-you-bitch" always; add_header Access-Control-Allow-Origin "you-poll-your-mama-blyat" always; } }
docker minio 部署使用
MinIO簡介
MinIO 是一款基于Go語言的高性能對象存儲服務(wù),在Github上已有19K+Star。
它采用了Apache License v2.0開源協(xié)議,非常適合于存儲大容量非結(jié)構(gòu)化的數(shù)據(jù),例如圖片、視頻、日志文件、備份數(shù)據(jù)和容器/虛擬機鏡像等。
本文將使用 MinIO 來自建一個對象存儲服務(wù)用于存儲圖片。
安裝及部署
MinIO的安裝方式有很多,這里我們使用它在Docker環(huán)境下的安裝方式。
下載MinIO的Docker鏡像:
docker pull minio/minio
在Docker容器中運行MinIO,這里我們將MiniIO的數(shù)據(jù)和配置文件夾掛在到宿主機上:
docker run -p 9090:9000 --name minio \ -v /etc/localtime:/etc/localtime \ -v /mydata/minio/data:/data \ -v /mydata/minio/config:/root/.minio \ -d minio/minio server /data
運行成功后,訪問該地址來登錄并使用MinIO,默認(rèn)Access Key和Secret都是minioadmin:http://localhost:9090
上傳文件及使用
通過使用MinIO的網(wǎng)頁端即可完成文件的上傳下載功能,下面我們以圖片上傳下載為例來演示下該功能。
在存儲文件之前,我們需要新建一個存儲桶:
存儲桶創(chuàng)建完成后,通過上傳按鈕可以上傳文件,這里我們上傳一張圖片:
圖片上傳完成后,我們可以通過拷貝鏈接按鈕來獲取圖片訪問路徑,但是這只是個臨時的訪問路徑:
要想獲取一個永久的訪問路徑,需要修改存儲桶的訪問策略,我們可以點擊存儲桶右上角的編輯策略按鈕來修改訪問策略;
這里有三種訪問策略可以選擇,一種只讀、一種只寫、一種可讀可寫,這里我們選擇只讀即可,但是需要注意的是,訪問前綴需要設(shè)置為*.*,否則會無法訪問;
設(shè)置完成后,我們只需要通過拷貝鏈接中的前一串路徑即可永久訪問該文件;
MinIO客戶端的使用
雖然MinIO的網(wǎng)頁端管理已經(jīng)很方便了,但是官網(wǎng)還是給我們提供了基于命令行的客戶端MinIO Client(簡稱mc),下面我們來講講它的使用方法。
常用命令
下面我們先來熟悉下mc的命令,這些命令和Linux中的命令有很多相似之處。
命令 | 作用 |
---|---|
ls | 列出文件和文件夾 |
mb | 創(chuàng)建一個存儲桶或一個文件夾 |
cat | 顯示文件和對象內(nèi)容 |
pipe | 將一個STDIN重定向到一個對象或者文件或者STDOUT |
share | 生成用于共享的URL |
cp | 拷貝文件和對象 |
mirror | 給存儲桶和文件夾做鏡像 |
find | 基于參數(shù)查找文件 |
diff | 對兩個文件夾或者存儲桶比較差異 |
rm | 刪除文件和對象 |
events | 管理對象通知 |
watch | 監(jiān)聽文件和對象的事件 |
policy | 管理訪問策略 |
session | 為cp命令管理保存的會話 |
config | 管理mc配置文件 |
update | 檢查軟件更新 |
version | 輸出版本信息 |
安裝及配置
由于MinIO服務(wù)端中并沒有自帶客戶端,所以我們需要安裝配置完客戶端后才能使用,這里以Docker環(huán)境下的安裝為例。
下載MinIO Client 的Docker鏡像:
docker pull minio/mc
在Docker容器中運行mc:
docker run -it --entrypoint=/bin/sh minio/mc
運行完成后我們需要進(jìn)行配置,將我們自己的MinIO服務(wù)配置到客戶端上去,配置的格式如下:
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>
對于我們的MinIO服務(wù)可以這樣配置:
mc config host add minio http://localhost:9000 minioadmin minioadmin S3v4
常用操作
查看存儲桶和查看存儲桶中存在的文件:
# 查看存儲桶 mc ls minio # 查看存儲桶中存在的文件 mc ls minio/blog
創(chuàng)建一個名為 test
的存儲桶:
mc mb minio/test
共享 avatar.png
文件的下載路徑:
mc share download minio/blog/avatar.png
查找 blog
存儲桶中的png文件:
mc find minio/blog --name "*.png"
設(shè)置 test
存儲桶的訪問權(quán)限為 只讀 :
# 目前可以設(shè)置這四種權(quán)限:none, download, upload, public mc policy set download minio/test/ # 查看存儲桶當(dāng)前權(quán)限 mc policy list minio/test/
參考資料:
詳細(xì)了解MinIO可以參考官方文檔:https://docs.min.io/cn/minio-quickstart-guide.html
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux系統(tǒng)通過Docker安裝SQL?Server數(shù)據(jù)庫
這篇文章介紹了Linux系統(tǒng)通過Docker安裝SQL?Server數(shù)據(jù)庫的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03通過Docker安裝啟動DB2在Spring?Boot整合DB2的方法
DB2是IBM的一款優(yōu)秀的關(guān)系型數(shù)據(jù)庫,這篇文章主要介紹了通過Docker啟動DB2,并在Spring?Boot整合DB2,需要的朋友可以參考下2023-01-01