docker minio部署和應用
MinIO 是一個基於Apache License v2.0開源協議的對象存儲服務。它兼容亞馬遜S3雲存儲服務接口,非常適合於存儲大容量非結構化的數據,例如圖片、視頻、日志文件、備份數據和容器/虛擬機鏡像等,而一個對象文件可以是任意大小,從幾kb到最大5T不等。
MinIO是一個非常輕量的服務,可以很簡單的和其他應用的結合,類似 NodeJS, Redis 或者 MySQL。
前提條件
單點模式
- 此處自定義Access和Secret秘鑰,默認值為minioadmin/minioadmin。
# docker pull minio/minio
# docker run -di -p 9000:9000 --name minio1 \
--restart=always \
-e "MINIO_ACCESS_KEY=minioadmin123" \
-e "MINIO_SECRET_KEY=minioadmin123" \
-v /mnt/data:/data \
-v /mnt/config:/root/.minio \
-v /etc/localtime:/etc/localtime \
minio/minio:RELEASE.2020-05-08T02-40-49Z server /data
# firewall-cmd --zone=public --add-port=9000/tcp --permanent //開放端口
# firewall-cmd --reload
Docker Compose單機多容器
下載docker-compose.yml並根據本地情節編輯后,上傳至服務器當前工作目錄,Docker Compose會pull MinIO Docker Image,所以你不需要手動去下載MinIO binary。然后運行下面的命令:
# docker-compose pull
# docker-compose up
Swarm mode多機多容器
Kubernetes多機多容器
未完待續...
文件上傳並設置bucket策略
- 登錄Minio Browser頁面后,如下圖:
- 點擊頁面加號ICON,點擊Create bucket ICON
- 點擊上傳文件ICON
- 設置文件策略,在左側bucket上編輯Edit Policy,設置訪問前綴為或者.*,選擇策略為Read Only/Write Only/Read and Write。
mc 客戶端
常用命令
命令 | 解釋 |
---|---|
ks | 列出文件和文件夾 |
mb | 創建一個存儲桶或一個文件夾 |
cat | 顯示文件和對象內容 |
pipe | 將一個STDIN重定向到一個對象或者文件或者STDOUT |
share | 生成用於共享的URL |
cp | 拷貝文件和對象 |
mirror | 給存儲桶和文件夾做鏡像 |
find | 基於參數查找文件 |
diff | 對兩個文件夾或者存儲桶比較差異 |
rm | 刪除文件和對象 |
events | 管理對象通知 |
watch | 監聽文件和對象的事件 |
policy | 管理訪問策略 |
session | 為cp命令管理保存的會話 |
config | 管理mc配置文件 |
update | 檢查軟件更新 |
version | 輸出版本信息 |
配置mc命令客戶端並設置bucket策略
# docker pull minio/mc //拉取mc客戶端鏡像
# docker run -it --entrypoint=/bin/sh minio/mc // 運行
# mc config host add minio2 http://宿主機IP:9000 minioadmin minioadmin --api s3v4
# mc policy set public minio2/testabc //設置訪問權限
# docker attach 容器ID //從新進入容器
- 權限4種:none, download, upload, public
- mc命令方式和Minio瀏覽器上設置策略二選一
運維問題
1、The difference between the request time and the server's time is too large?
原因:linux服務器時區的問題
解決方案:調整系統時間和硬件時間
# date //查看系統時間
# hwclock //查看硬件時間
# yum -y install ntp ntpdate //安裝ntpdate時間同步工具
# ntpdate cn.pool.ntp.org //設置系統時間與網絡時間同步
# hwclock --systohc //將系統時間寫入硬件時間