【Docker項目實戰】在Docker環境下部署go-file文件分享工具
- 一、go-file介紹
- 1.1 go-file簡介
- 1.2 go-file特點
- 1.3 go-file使用場景
- 二、本地環境介紹
- 2.1 本地環境規劃
- 2.2 本次實踐介紹
- 三、本地環境檢查
- 3.1 檢查Docker服務狀態
- 3.2 檢查Docker版本
- 3.3 檢查docker compose 版本
- 四、下載go-file鏡像
- 五、部署go-file文件分享工具
- 5.1 創建掛載目錄
- 5.2 使用docker-cli創建go-file容器
- 5.3 編輯docker-compose.yaml文件
- 5.4 使用docker compose創建go-file容器
- 5.5 檢查go-file容器狀態
- 5.6 檢查go-file容器日志
- 六、go-file文件分享工具的基本使用
- 6.1 訪問go-file首頁
- 6.2 登錄go-file
- 6.3 系統管理
- 6.4 上傳文檔
- 6.5 上傳圖片
- 6.6 瀏覽上傳圖片
- 6.7 上傳視頻文件
- 6.8 瀏覽文件
- 6.9 分享文件
- 七、總結
一、go-file介紹
1.1 go-file簡介
go-file是一款開源的文件分享工具,僅單個可執行文件,開箱即用,可用于局域網內分享文件和文件夾,直接跑滿本地帶寬 。
1.2 go-file特點
- 無需配置環境,僅單個可執行文件,直接雙擊即可開始使用。
- 自動打開瀏覽器,分享文件快人一步。
- 提供二維碼,可供移動端掃描下載文件,告別手動輸入鏈接。
- 支持分享本地文件夾。
- 適配移動端。
- 內置圖床,支持直接粘貼上傳圖片,提供圖片上傳 API。
- 內置視頻播放頁面,可用于在其他設備上在線博客自己電腦上的視頻,輕松跨設備在線看視頻。
- 支持拖拽上傳,拷貝上傳。
- 允許對不同類型的用戶設置文件訪問權限限制。
- 訪問頻率限制。
- 支持 Token API 驗證,便于與其他系統整合。
- 為不熟悉命令行的用戶制作了啟動器。
- 支持 PicGo,插件搜索 gofile 即可安裝。
- 配套 CLI 工具,支持命令行上傳文件,支持 P2P 模式文件分享
1.3 go-file使用場景
go-file可以在以下場景進行使用:
-
團隊協作:多人共享文件,可以用于團隊內部的文件共享和交流。團隊成員可以將文件上傳至go-file,并通過生成的鏈接分享給其他人進行下載。
-
學習資料分享:教師可以將課件、教材等學習資料上傳到go-file,然后將鏈接分享給學生進行下載。學生也可以將學習資料上傳至go-file與其他同學進行分享。
-
個人文件備份:用戶可以將重要的個人文件上傳到go-file進行備份,以防止文件丟失或損壞。用戶可以根據需要隨時下載備份文件。
-
客戶文件共享:企業可以使用go-file來分享與客戶合作的文件,如合同、報價單等。通過生成的鏈接,可以方便地與客戶共享文件。
-
程序代碼分享:開發者可以將自己的程序代碼上傳到go-file,并通過鏈接分享給其他開發者,方便進行代碼交流和共享。
二、本地環境介紹
2.1 本地環境規劃
本次實踐為個人測試環境,操作系統版本為centos7.6。
hostname | IP地址 | 操作系統版本 | Docker版本 |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 20.10.17 |
2.2 本次實踐介紹
1.本次實踐部署環境為個人測試環境,生產環境請謹慎;
2.在Docker環境下成功部署go-file文件分享工具。
三、本地環境檢查
3.1 檢查Docker服務狀態
檢查Docker服務是否正常運行,確保Docker正常運行。
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2023-12-08 19:10:36 CST; 14h agoDocs: https://docs.docker.comMain PID: 11729 (dockerd)Tasks: 8Memory: 126.8MCGroup: /system.slice/docker.service
3.2 檢查Docker版本
檢查Docker版本
[root@jeven ~]# docker version
Client: Docker Engine - CommunityVersion: 20.10.17API version: 1.41Go version: go1.17.11Git commit: 100c701Built: Mon Jun 6 23:05:12 2022OS/Arch: linux/amd64Context: defaultExperimental: trueServer: Docker Engine - CommunityEngine:Version: 20.10.17API version: 1.41 (minimum version 1.12)Go version: go1.17.11Git commit: a89b842Built: Mon Jun 6 23:03:33 2022OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.6GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1runc:Version: 1.1.2GitCommit: v1.1.2-0-ga916309docker-init:Version: 0.19.0GitCommit: de40ad0
3.3 檢查docker compose 版本
檢查Docker compose版本,確保2.0以上版本。
[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1
四、下載go-file鏡像
在docker hub下載go-file鏡像
[root@jeven ~]# docker pull justsong/go-file
Using default tag: latest
latest: Pulling from justsong/go-file
8a49fdb3b6a5: Pull complete
6c0696470a5d: Pull complete
cc95f799a85b: Pull complete
576cd38f4e44: Pull complete
Digest: sha256:9860606003f432cc15ecec4f2cff61fedc7f446acf4bdcc4ef3d936b7466ba20
Status: Downloaded newer image for justsong/go-file:latest
docker.io/justsong/go-file:latest
五、部署go-file文件分享工具
5.1 創建掛載目錄
創建主機掛載目錄
mkdir -p /data/go-file/data
設置目錄權限
chmod -R 777 /data/go-file/
5.2 使用docker-cli創建go-file容器
- docker-cli創建go-file容器
docker run -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /data/go-file/data:/data justsong/go-file
5.3 編輯docker-compose.yaml文件
本次使用docker compose部署/go-file項目,編輯docker-compose.yaml部署文件。
version: '3.8'
services:go-file:image: justsong/go-filerestart: alwaysports:- "3000:3000"environment:- TZ=Asia/Shanghaivolumes:- /data/go-file/data:/data
5.4 使用docker compose創建go-file容器
使用docker compose創建go-file容器
[root@jeven go-file]# docker compose up -d
[+] Running 2/2? Network go-file_default Created 0.1s? Container go-file-go-file-1 Started 1.0s
5.5 檢查go-file容器狀態
檢查go-file容器狀態
[root@jeven go-file]# docker compose ps
NAME COMMAND SERVICE STATUS PORTS
go-file-go-file-1 "/go-file" go-file running 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp
5.6 檢查go-file容器日志
檢查go-file容器運行日志,確保go-file服務正常運行。
[root@jeven go-file]# docker compose logs
go-file-go-file-1 | [SYS] 2023/12/09 - 10:16:08 | Go File v0.4.12 started at port 3000
六、go-file文件分享工具的基本使用
6.1 訪問go-file首頁
訪問地址:http://192.168.3.166:3000,將IP替換為自己服務器IP地址。
6.2 登錄go-file
用戶名為 admin,密碼為 123456
6.3 系統管理
點擊系統管理,分別有系統狀況、賬戶管理、文件管理、系統設置四個選項。
6.4 上傳文檔
點擊首頁菜單欄的文件模塊,點擊“上傳”,將本地文檔上傳到go-file。
6.5 上傳圖片
點擊圖床選項,將圖片復制到圖床中。
6.6 瀏覽上傳圖片
將圖床中圖片鏈接復制到瀏覽器中,可以正常打開。
6.7 上傳視頻文件
點擊右上角的“上傳”選項,上傳視頻文件。
點擊菜單欄的視頻模塊,選擇視頻文件進行播放。
6.8 瀏覽文件
在首頁上傳的文檔文件可以在線瀏覽
6.9 分享文件
點擊首頁上傳文件的的復制圖標,將復制的分享文件鏈接粘貼到其余瀏覽器即可訪問。
七、總結
總體而言,go-file文件分享工具在使用上非常不錯。它可以方便地分享文件、圖片、視頻等各種類型的文件,并且打開速度非常快。使用Docker可以快速將該工具部署到服務器中,界面簡潔,操作也很簡單,即使是新手也可以立即上手使用。