【Docker项目实战】在Docker环境下部署go-file文件分享工具

简介: 【2月更文挑战第15天】在Docker环境下部署go-file文件分享工具

一、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 Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-12-08 19:10:36 CST; 14h ago
     Docs: https://docs.docker.com
 Main PID: 11729 (dockerd)
    Tasks: 8
   Memory: 126.8M
   CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:03:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        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-file
    restart: always
    ports:
      - "3000:3000"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /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可以快速将该工具部署到服务器中,界面简洁,操作也很简单,即使是新手也可以立即上手使用。

相关文章
|
13小时前
|
IDE Go 开发工具
【GO基础】2. IDEA配置Go语言开发环境
【GO基础】2. IDEA配置Go语言开发环境
|
18小时前
|
Docker 容器
docker部署omni_usdt 0.8.0版本私有链集群环境
docker部署omni_usdt 0.8.0版本私有链集群环境
|
2天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
21 3
|
2天前
|
Cloud Native 安全 Linux
【云原生之Docker实战】使用Docker部署mBlog微博系统
【5月更文挑战第10天】使用Docker部署mBlog微博系统
13 2
|
6月前
|
Unix Linux Go
Go 语言环境安装
在使用golang安装软件完成安装之后,如果使用go run或者go build时,显示不能识别go 命令。此时可以先重启电脑。因为PATH的路径此时并没有加载对应的go 安装路径 ,win下默认的路径是:c:\go或者C:\Program Files\Go。
33 0
|
12月前
|
Unix Linux Go
开心档之 Go 语言环境安装
Go 语言支持以下系统:Linux,FreeBSD,Mac OS X(也称为 Darwin),Windows
|
Unix Linux Go
开心档之Go 语言环境安装
以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法: 1、下载二进制包:go1.4.linux-amd64.tar.gz。 2、将下载的二进制包解压至 /usr/local目录。
|
IDE Go 开发工具
go语言环境安装
go语言系列
1213 0
|
1天前
|
JSON 前端开发 Go
lucky - go 语言实现的快速开发平台
go 语言实现的快速开发平台,自动生成crud代码,前端页面通过json配置,无需编写前端代码。
8 0
|
2天前
|
存储 Java Go
Go 语言切片如何扩容?(全面解析原理和过程)
Go 语言切片如何扩容?(全面解析原理和过程)
12 2