admin管理员组

文章数量:1027128

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

一、PairDrop介绍

1.1 PairDrop简介

PairDrop 是一个支持跨平台的文件共享工具,它允许用户通过本地网络或互联网轻松地在不同设备之间发送图片、文档或文本。与传统的文件传输方式相比,PairDrop 提供了一个无需设置、无需注册的便捷解决方案,适用于拥有现代网页浏览器的所有设备。

1.2 主要特点

  • 多平台兼容:无论是Windows、macOS、Linux还是移动操作系统如iOS和Android,PairDrop都能提供类似AirDrop的体验。
  • 本地网络文件分享:通过点对点连接直接在同一个局域网内的设备间进行文件传输,快速且高效。
  • 临时公共房间:用户可以通过加入临时公共房间,方便地通过互联网与其他用户进行文件交换。
  • Web应用形式:无需安装额外的应用程序,只需使用带有现代浏览器的设备即可访问和使用PairDrop服务。

1.3 使用场景

  • 工作环境中的协作:在办公室或团队合作时,成员可以通过PairDrop迅速分享会议资料、设计稿或其他重要文档,提高工作效率。
  • 家庭内媒体共享:家庭成员可以轻松地在各自的设备间分享照片、视频等多媒体内容,无需复杂的设置过程。
  • 教育领域资源传递:教师和学生可以在教室或校园网环境下快速交换学习材料,便于教学活动的开展。
  • 外出旅行时的即时分享:当朋友或家人一同出游时,可以通过创建临时公共房间来分享旅途中的精彩瞬间,即使没有稳定的Wi-Fi连接也能实现。

二、本次实践规划

2.1 本地环境规划

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

hostname

IP地址

操作系统版本

Docker版本

部署项目

jeven01

192.168.3.88

Ubuntu 22.04.1 LTS

27.1.1

PairDrop

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下部署PairDrop文件传输工具。

三、本地环境检查

3.1 检查Docker服务状态

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

代码语言:bash复制
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: 
   Main PID: 10450 (dockerd)
      Tasks: 60 (limit: 9387)
     Memory: 1.8G
        CPU: 33min 54.335s
     CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

代码语言:bash复制
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 检查docker compose 版本

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

代码语言:bash复制
root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、下载PairDrop镜像

拉取PairDrop镜像,拉取相关镜像如下所示:

代码语言:bash复制
root@jeven01:/data/pairdrop# docker pull registry-hangzhou.aliyuncs/jeson/pairdrop:latest
latest: Pulling from jeson/pairdrop
Digest: sha256:c280038542607099f29b829386878ff02682ed7e5ab22f0b2f1edc2631e2dee0
Status: Image is up to date for registry-hangzhou.aliyuncs/jeson/pairdrop:latest
registry-hangzhou.aliyuncs/jeson/pairdrop:latest

五、部署PairDrop应用

5.1 创建部署目录

  • 创建部署目录
代码语言:bash复制
mkdir -p /data/pairdrop  &&  cd /data/pairdrop 

5.2 编辑部署文件

  • 如果使用docker-cli部署,可使用以下命令。(可选)
代码语言:bash复制
docker run -d \
    --name pairdrop \
    --restart always  \
    -p 3049:3000 \
    -e PUID=1000 \
    -e PGID=1000 \
    -e WS_FALLBACK=true \
    -e RATE_LIMIT=false \
    -e RTC_CONFIG=false \
    -e DEBUG_MODE=false \
    -e TZ=Asia/Shanghai \
   registry-hangzhou.aliyuncs/jeson/pairdrop:latest

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

代码语言:bash复制
vim docker-compose.yaml
代码语言:yaml复制
version: '3'

services:
  pairdrop:
    image: registry-hangzhou.aliyuncs/jeson/pairdrop:latest
    container_name: pairdrop
    restart: always
    ports:
      - 6600:3000
    environment:
      - PUID=0
      - PGID=0
      - WS_FALLBACK=true
      - RATE_LIMIT=false
      - RTC_CONFIG=false
      - DEBUG_MODE=false
      - TZ=Asia/Shanghai

环境变量

描述

PUID

0

用户ID。设为1000或其他值以匹配运行容器的用户ID,这里设置为0可能表示默认或root用户。

PGID

0

用户组ID。与PUID类似,设为1000或其他值以匹配用户组ID,这里设置为0。

WS_FALLBACK

true

启用WebSocket回调功能,如果客户端无法建立点对点的WebRTC连接,则通过WebSocket进行通信。

RATE_LIMIT

false

控制是否限制客户端请求频率。如果设置为true,将限制每5分钟最多1000次请求。此处设置为false,不限制。

RTC_CONFIG

false

指定是否配置STUN/TURN服务器用于WebRTC连接。若设置为true,则需要提供相应的服务器配置。

DEBUG_MODE

false

是否启用调试模式。启用后可以输出更多详细的日志信息,便于调试应用。

TZ

Asia/Shanghai

设置容器内的时区。这里设置为"Asia/Shanghai",即上海时间(也可以适用于整个中国大陆地区)。

5.3 创建PairDrop容器

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

代码语言:bash复制
root@jeven01:/data/pairdrop# docker compose up -d
[+] Running 2/2
 ? Network pairdrop_default  Created                                                                                                              0.1s
 ? Container pairdrop        Started                                                                                                              0.2s
在这里插入图片描述

5.4 查看PairDrop容器状态

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

代码语言:bash复制
root@jeven01:/data/pairdrop#  docker compose ps
NAME                IMAGE                                                     COMMAND             SERVICE             CREATED             STATUS       PORTS
pairdrop            registry-hangzhou.aliyuncs/jeson/pairdrop:latest   "/init"             pairdrop            33 seconds ago      Up 32 seconds       0.0.0.0:6600->3000/tcp, :::6600->3000/tcp

5.5 查看PairDrop容器日志

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

代码语言:bash复制
docker compose logs
在这里插入图片描述

六、访问PairDrop服务

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

在这里插入图片描述

七、文件传输测试

7.1 PC端接收文件

在局域网内其余PC打开PairDrop的访问链接,可以看到本机的随机名称Plum Cobra。

在这里插入图片描述

点击Plum Cobra,发送本地文件给Plum Cobra机器后。返回到本机上查看,可以看到文件传输请求,确认即可下载。

在这里插入图片描述
在这里插入图片描述

7.2 手机端接收文件

在手机浏览器打开 http://<个人的服务器IP>:6600,访问PairDrop服务。

在这里插入图片描述

在PC端将本地文件传给手机,可以看到如下效果:

在这里插入图片描述

八、总结

通过本次实战,我们成功使用Docker部署了PairDrop文件传输工具,体验了其跨平台文件共享的便捷性。在部署过程中,我们检查并配置了本地环境,确保了服务的顺利运行,并通过实际文件传输测试验证了PairDrop的功能和稳定性。无论是工作协作还是日常生活中的文件分享,PairDrop都展现出了极高的实用价值和灵活性。

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

一、PairDrop介绍

1.1 PairDrop简介

PairDrop 是一个支持跨平台的文件共享工具,它允许用户通过本地网络或互联网轻松地在不同设备之间发送图片、文档或文本。与传统的文件传输方式相比,PairDrop 提供了一个无需设置、无需注册的便捷解决方案,适用于拥有现代网页浏览器的所有设备。

1.2 主要特点

  • 多平台兼容:无论是Windows、macOS、Linux还是移动操作系统如iOS和Android,PairDrop都能提供类似AirDrop的体验。
  • 本地网络文件分享:通过点对点连接直接在同一个局域网内的设备间进行文件传输,快速且高效。
  • 临时公共房间:用户可以通过加入临时公共房间,方便地通过互联网与其他用户进行文件交换。
  • Web应用形式:无需安装额外的应用程序,只需使用带有现代浏览器的设备即可访问和使用PairDrop服务。

1.3 使用场景

  • 工作环境中的协作:在办公室或团队合作时,成员可以通过PairDrop迅速分享会议资料、设计稿或其他重要文档,提高工作效率。
  • 家庭内媒体共享:家庭成员可以轻松地在各自的设备间分享照片、视频等多媒体内容,无需复杂的设置过程。
  • 教育领域资源传递:教师和学生可以在教室或校园网环境下快速交换学习材料,便于教学活动的开展。
  • 外出旅行时的即时分享:当朋友或家人一同出游时,可以通过创建临时公共房间来分享旅途中的精彩瞬间,即使没有稳定的Wi-Fi连接也能实现。

二、本次实践规划

2.1 本地环境规划

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

hostname

IP地址

操作系统版本

Docker版本

部署项目

jeven01

192.168.3.88

Ubuntu 22.04.1 LTS

27.1.1

PairDrop

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下部署PairDrop文件传输工具。

三、本地环境检查

3.1 检查Docker服务状态

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

代码语言:bash复制
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: 
   Main PID: 10450 (dockerd)
      Tasks: 60 (limit: 9387)
     Memory: 1.8G
        CPU: 33min 54.335s
     CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

代码语言:bash复制
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 检查docker compose 版本

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

代码语言:bash复制
root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、下载PairDrop镜像

拉取PairDrop镜像,拉取相关镜像如下所示:

代码语言:bash复制
root@jeven01:/data/pairdrop# docker pull registry-hangzhou.aliyuncs/jeson/pairdrop:latest
latest: Pulling from jeson/pairdrop
Digest: sha256:c280038542607099f29b829386878ff02682ed7e5ab22f0b2f1edc2631e2dee0
Status: Image is up to date for registry-hangzhou.aliyuncs/jeson/pairdrop:latest
registry-hangzhou.aliyuncs/jeson/pairdrop:latest

五、部署PairDrop应用

5.1 创建部署目录

  • 创建部署目录
代码语言:bash复制
mkdir -p /data/pairdrop  &&  cd /data/pairdrop 

5.2 编辑部署文件

  • 如果使用docker-cli部署,可使用以下命令。(可选)
代码语言:bash复制
docker run -d \
    --name pairdrop \
    --restart always  \
    -p 3049:3000 \
    -e PUID=1000 \
    -e PGID=1000 \
    -e WS_FALLBACK=true \
    -e RATE_LIMIT=false \
    -e RTC_CONFIG=false \
    -e DEBUG_MODE=false \
    -e TZ=Asia/Shanghai \
   registry-hangzhou.aliyuncs/jeson/pairdrop:latest

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

代码语言:bash复制
vim docker-compose.yaml
代码语言:yaml复制
version: '3'

services:
  pairdrop:
    image: registry-hangzhou.aliyuncs/jeson/pairdrop:latest
    container_name: pairdrop
    restart: always
    ports:
      - 6600:3000
    environment:
      - PUID=0
      - PGID=0
      - WS_FALLBACK=true
      - RATE_LIMIT=false
      - RTC_CONFIG=false
      - DEBUG_MODE=false
      - TZ=Asia/Shanghai

环境变量

描述

PUID

0

用户ID。设为1000或其他值以匹配运行容器的用户ID,这里设置为0可能表示默认或root用户。

PGID

0

用户组ID。与PUID类似,设为1000或其他值以匹配用户组ID,这里设置为0。

WS_FALLBACK

true

启用WebSocket回调功能,如果客户端无法建立点对点的WebRTC连接,则通过WebSocket进行通信。

RATE_LIMIT

false

控制是否限制客户端请求频率。如果设置为true,将限制每5分钟最多1000次请求。此处设置为false,不限制。

RTC_CONFIG

false

指定是否配置STUN/TURN服务器用于WebRTC连接。若设置为true,则需要提供相应的服务器配置。

DEBUG_MODE

false

是否启用调试模式。启用后可以输出更多详细的日志信息,便于调试应用。

TZ

Asia/Shanghai

设置容器内的时区。这里设置为"Asia/Shanghai",即上海时间(也可以适用于整个中国大陆地区)。

5.3 创建PairDrop容器

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

代码语言:bash复制
root@jeven01:/data/pairdrop# docker compose up -d
[+] Running 2/2
 ? Network pairdrop_default  Created                                                                                                              0.1s
 ? Container pairdrop        Started                                                                                                              0.2s
在这里插入图片描述

5.4 查看PairDrop容器状态

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

代码语言:bash复制
root@jeven01:/data/pairdrop#  docker compose ps
NAME                IMAGE                                                     COMMAND             SERVICE             CREATED             STATUS       PORTS
pairdrop            registry-hangzhou.aliyuncs/jeson/pairdrop:latest   "/init"             pairdrop            33 seconds ago      Up 32 seconds       0.0.0.0:6600->3000/tcp, :::6600->3000/tcp

5.5 查看PairDrop容器日志

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

代码语言:bash复制
docker compose logs
在这里插入图片描述

六、访问PairDrop服务

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

在这里插入图片描述

七、文件传输测试

7.1 PC端接收文件

在局域网内其余PC打开PairDrop的访问链接,可以看到本机的随机名称Plum Cobra。

在这里插入图片描述

点击Plum Cobra,发送本地文件给Plum Cobra机器后。返回到本机上查看,可以看到文件传输请求,确认即可下载。

在这里插入图片描述
在这里插入图片描述

7.2 手机端接收文件

在手机浏览器打开 http://<个人的服务器IP>:6600,访问PairDrop服务。

在这里插入图片描述

在PC端将本地文件传给手机,可以看到如下效果:

在这里插入图片描述

八、总结

通过本次实战,我们成功使用Docker部署了PairDrop文件传输工具,体验了其跨平台文件共享的便捷性。在部署过程中,我们检查并配置了本地环境,确保了服务的顺利运行,并通过实际文件传输测试验证了PairDrop的功能和稳定性。无论是工作协作还是日常生活中的文件分享,PairDrop都展现出了极高的实用价值和灵活性。

本文标签: Docker项目实战使用Docker部署PairDrop文件传输工具