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

