【Docker项目实战】使用Docker部署FastSend文件传输工具

【Docker项目实战】使用Docker部署FastSend文件传输工具

一、FastSend介绍

1.1 FastSend 简介

FastSend 是一款开源的点对点(P2P)文件传输工具,它利用了WebRTC技术来实现浏览器之间的直接数据交换。这意味着用户可以通过网页界面轻松地共享文件或文件夹,而无需依赖第三方服务器进行中转,从而保证了高效和安全的数据传输。FastSend特别适合需要快速分享大量数据的个人和团队使用,特别是在局域网环境下能够提供优化的传输速度。

1.2 主要特点

  1. 点对点加密传输
    FastSend确保所有通过其平台传输的数据都经过端到端加密处理,使得数据在传输过程中保持高度的安全性,保护用户的隐私不被泄露。
  2. 支持文件和文件夹传输
    用户不仅可以发送单个文件,还可以一次性发送整个文件夹,这极大地提高了批量文件共享的效率。
  3. 局域网自动优化
    当处于同一局域网内的设备之间进行文件传输时,FastSend会自动调整以获得最佳的传输速度,使大文件的传输更加迅速。
  4. 简单易用的界面设计
    该工具提供了直观友好的用户界面,即使是非技术人员也能轻松上手,减少了学习成本,提升了用户体验。
  5. 多语言支持
    FastSend界面支持中英文切换,方便不同语言偏好的用户使用。
  6. PWA轻量安装
    支持渐进式Web应用程序(PWA),允许用户将FastSend添加到桌面或主屏幕上,就像原生应用一样便捷,同时不需要复杂的安装过程。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。

hostname IP地址 操作系统版本 Docker版本 部署项目
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 FastSend

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.在Docker环境下部署FastSend文件传输工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-11-01 00:45:50 CST; 2 weeks 4 days ago
       Docs: https://docs.docker.com
   Main PID: 10450 (dockerd)
      Tasks: 60 (limit: 9387)
     Memory: 1.8G
        CPU: 33min 54.335s
     CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、下载FastSend镜像

拉取FastSend镜像,拉取镜像如下所示:

root@jeven01:~# docker pull 918178/fastsend:v0.5.7
v0.5.7: Pulling from 918178/fastsend
38a8310d387e: Pull complete
1b970ccead88: Pull complete
e27d76322248: Pull complete
fdd316e9b466: Pull complete
fb7d56e450d6: Pull complete
3cfcd2534725: Pull complete
Digest: sha256:f108ba84fd22a3268f48f86ceaec2c4a89102ebd7c3484ae6725fb01f66fb7d5
Status: Downloaded newer image for 918178/fastsend:v0.5.7
docker.io/918178/fastsend:v0.5.7

五、部署FastSend应用

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/fastsend  &&  cd /data/fastsend

5.2 编辑部署文件

  • 如果使用docker-cli部署,可使用以下命令。(可选)
docker run -d \
  --name fastsend \
  --restart always  \
  -p 5300:3000 \
  -e NODE_ENV=production \
 918178/fastsend:v0.5.7  \
  node server/index.mjs


在`部署目录下,创建docker-compose.yaml文件,如下所示:

vim docker-compose.yaml

version: '3'

services:
  fastsend:
    image:  918178/fastsend:v0.5.7
    container_name: fastsend
    restart: unless-stopped
    ports:
      - 5300:3000
    environment:
      - NODE_ENV=production
    command: node server/index.mjs




5.3 创建FastSend容器

执行以下命令,创建FastSend容器。

root@jeven01:/data/fastsend# docker compose up -d
[+] Running 2/2
 ✔ Network fastsend_default  Created                                                                                                              0.1s
 ✔ Container fastsend        Started                                                                                                              0.2s
在这里插入图片描述

5.4 查看FastSend容器状态

检查FastSend容器状态状态,确保FastSend容器正常启动。

root@jeven01:/data/fastsend#  docker compose ps
NAME                IMAGE                    COMMAND                  SERVICE             CREATED             STATUS              PORTS
fastsend            918178/fastsend:v0.5.7   "docker-entrypoint.s…"   fastsend            47 seconds ago      Up 47 seconds       0.0.0.0:5300->3000/tcp, :::5300->3000/tcp

5.5 查看FastSend容器日志

检查FastSend容器日志,确保FastSend服务正常运行。

root@jeven01:/data/fastsend# docker compose logs
fastsend  | transCount: 0
fastsend  | Listening on http://[::]:3000

六、访问FastSend服务

浏览器地址: http://<个人的服务器IP>:5300,访问FastSend服务的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

七、FastSend基本使用

7.1 上传文件

在FastSend的主页中,如果想要取消显示的警告限制,可采用https访问。点击发送文件,上传本地文件。

在这里插入图片描述

上传文件后,会自动生成取件码,复制及记住取件码。

在这里插入图片描述

7.2 接收文件

在局域网内其余电脑,打开FastSend主页,在右侧填写刚才得取件码。

在这里插入图片描述

回到FastSend发送端,确认发送文件。

在这里插入图片描述

回到接收端,点击确认接收文件,可以看到文件成功接受。

八、总结

通过本次实践,我们成功地使用Docker部署了FastSend文件传输工具,体验了从环境准备到服务访问的全过程。FastSend基于WebRTC技术实现的点对点文件传输功能,在保障数据安全的同时展现了高效、便捷的文件共享能力。这次部署不仅加深了我们对Docker容器化部署的理解,也展示了如何快速搭建一个实用的文件传输服务,为后续的相关项目提供了宝贵的经验和参考案例。