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進行代理,代理時不改變訪問路徑,外網(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
運行完成后我們需要進行配置,將我們自己的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)文章
Docker方式創(chuàng)建keepalived連接MGR集群
本文介紹了通過Docker方式創(chuàng)建keepalived代理訪問MGR集群的詳細(xì)步驟,包括重新制作鏡像、導(dǎo)入新鏡像、創(chuàng)建容器等操作,并說明了配置文件的關(guān)鍵參數(shù),通過這種方式,可以避免手動修改數(shù)據(jù)庫連接地址,實現(xiàn)主節(jié)點故障時的自動故障轉(zhuǎn)移2022-05-05
解決'nacos默認(rèn)secret.key配置不當(dāng)權(quán)限繞過漏洞'的問題
這篇文章主要介紹了解決“nacos默認(rèn)secret.key配置不當(dāng)權(quán)限繞過漏洞“的問題,解決這個問題需要對這個key的默認(rèn)值進行修改,建議不要使用明文,可以用base64,key的長度要32位以上,下面介紹一下在兩種環(huán)境下的修改方法,感興趣的朋友一起看看吧2024-01-01
關(guān)于docker安裝python3.8鏡像的問題
這篇文章主要介紹了docker安裝python3.8鏡像的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10
使用Docker配置redis sentinel哨兵的方法步驟
本文主要介紹了Docker配置redis sentinel哨兵的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

