【Docker实战项目】使用Docker部署Plik 临时文件上传系统

简介: 【7月更文挑战第23天】使用Docker部署Plik 临时文件上传系统

@TOC

一、Plik介绍

1.1 Plik简介

Plik 是 golang 中的一个可扩展且友好的临时文件上传系统(类似 Wetransfer)。

1.2 Plik特点

  • 强大的命令行客户端
  • 易于使用的 Web UI
  • 多种数据后端:文件、OpenStack Swift、S3、Google Cloud Storage
  • 多个元数据后端:Sqlite3、PostgreSQL、MySQL
  • OneShot:文件在第一次下载后被销毁
  • 流:文件从上传器流式传输到下载器(服务器端不存储任何内容)
  • 可移动 :赋予上传者随时删除文件的能力
  • TTL : 自定义到期日期
  • 密码:使用登录名/密码保护上传(Auth Basic)
  • 注释:添加自定义消息(Markdown 格式)
  • 用户身份验证 : 本地 / Google / OVH
  • 上传限制:源IP / 令牌
  • 管理员 CLI 和 Web UI
  • 服务器端加密(使用 S3 数据后端)
  • 多架构构建和 docker 镜像
  • 分享X上传器:直接集成到 ShareX 中
  • plikSharp:Plik 的 .NET API 客户端
  • Filelink for Plik : Thunderbird 插件将附件上传到 Plik

1.3 使用场景

  1. 远程协作:当团队成员需要共享大型文件但常规电子邮件无法处理时,Plik 提供了一个简单的方法来上传文件,并通过生成的链接分享给团队中的其他人。

  2. 临时备份:对于需要快速备份重要数据的情况,用户可以使用 Plik 将文件上传至云端存储(如 S3 或 Google Cloud Storage),并在完成备份后自动销毁文件以节省空间。

  3. 软件开发协作:开发团队可以在内部使用 Plik 来交换大型构建文件或测试数据集,通过设置过期时间或下载次数限制来控制文件的可用性。

  4. 多媒体文件分享:对于摄影师或视频制作人来说,Plik 成为一个分享高分辨率图像或视频文件的好工具,特别是当他们需要快速发送给客户或合作伙伴进行审查时。

  5. 技术支持与故障排除:技术支持人员可以使用 Plik 快速上传和分享诊断日志或屏幕截图,以便远程解决客户遇到的问题。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostname IP地址 操作系统版本 Docker版本
dokcer 192.168.3.166 centos 7.6 2 20.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Plik临时文件上传系统。

三、本地环境检查

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 Wed 2023-11-22 17:32:04 CST; 6 days ago
     Docs: https://docs.docker.com
 Main PID: 11795 (dockerd)
    Tasks: 33
   Memory: 164.9M
   CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

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

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载Plik镜像

从docker hub拉取Plik镜像

[root@jeven ~]# docker pull rootgg/plik
Using default tag: latest
latest: Pulling from rootgg/plik
188c0c94c7c5: Pull complete
f96bea0e51ed: Pull complete
ae9f8219d19c: Pull complete
d803b156e271: Pull complete
aaef3faf0191: Pull complete
Digest: sha256:8d88186c07c9aa67c5db2062920be6eb04f975c75257589381e82149c5a4a796
Status: Downloaded newer image for rootgg/plik:latest
docker.io/rootgg/plik:latest

五、部署Plik临时文件上传系统

5.1 创建挂载目录

创建挂载目录

mkdir -p /data/plik/data

设置权限

chmod -R 777 /data/plik/

5.2 创建Plik容器

使用docker-cli快速部署plik容器

docker run  -d  \
--name plik \
-p 8566:8080  \
-v /data/plik/data:/home/plik/server/files  \
rootgg/plik

使用docker compose运行plik容器

version: "3"
services:
  plik:
    image: rootgg/plik
    container_name: plik
    ports:
      - "8566:8080"
    volumes:
      - /data/plik/data:/home/plik/server/files
  • 使用docker-compose.yaml文件创建plik容器
    [root@jeven plik]# docker compose up -d
    [+] Running 2/2
    ⠿ Network plik_default  Created                                                                                        0.3s
    ⠿ Container plik        Started                                                                                        1.8s
    

5.3 检查plik容器状态

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

[root@jeven plik]#  docker compose ps
NAME                COMMAND                SERVICE             STATUS              PORTS
plik                "/bin/sh -c ./plikd"   plik                running             0.0.0.0:8566->8080/tcp, :::8566->8080/tcp

5.4 检查plik容器日志

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

[root@jeven plik]#  docker compose logs
plik  | [11/28/2023 12:21:13][INFO    ] Starting plikd server v1.3.1
plik  | [11/28/2023 12:21:13][INFO    ] Starting server at http://0.0.0.0:8080
plik  | [11/28/2023 12:21:13][INFO    ] Will clean old uploads in 10677 seconds.

在这里插入图片描述

六、Plik的基本使用

6.1 访问Plik首页

访问地址:http://192.168.3.166:8566/,将IP换为自己服务器IP地址。

在这里插入图片描述

6.2 Plik的基本设置

在左侧第一个选项,点击启动后,第一次下载后,文件立即从服务器删除。

在这里插入图片描述

在左侧第二个选项,点击启动后,开启流媒体。

在这里插入图片描述

在左侧第三个选项,点击启用后,上传者可以删除文件。

在这里插入图片描述

在左侧第四个选项,点击启用后,上传和下载之前需要输入密码。

在这里插入图片描述

在左侧第五个选项,点击启用后,可以在上传的内容中添加评论。

在这里插入图片描述

6.3 上传测试文件

将所有Plik设置选项都设置关闭状态

在这里插入图片描述

点击上传文件

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

6.4 分享文件

复制文件链接到其他电脑即可下载。

在这里插入图片描述

七、总结

Plik 是一款用 Go 语言编写的临时文件上传系统,它的设计友好且易于使用,与 Wetransfer 类似。用户可以轻松地上传文件并获得一个分享链接,接收者通过该链接即可下载文件。它的界面简洁直观,即使是没有技术背景的人也能迅速上手。此外,Plik 还支持加密分享和自定义存储时长等功能,确保了文件的安全性和灵活性。整体而言,Plik 提供了一种高效便捷的大文件传输解决方案。

相关文章
|
1月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
|
2月前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
167 23
|
2月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
282 12
|
3月前
|
安全 API 算法框架/工具
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
393 2
|
2月前
|
存储 SQL 关系型数据库
docker部署n9e开源版本7.4.0
n9e开源版本7.4.0
146 0
|
27天前
|
开发者 Docker 容器
获取Docker基础使用方法:让容器化变得轻松。
对于Docker的初学者来说,了解这些基础知识点就足够了。实践是最好的老师,越是动手操作,对Docker的理解会越深。祝阅读这篇文章的开发者们一切顺利,愿你在Docker的海洋中航行顺利!
81 17
|
1月前
|
关系型数据库 MySQL Docker
|
2月前
|
Ubuntu Linux Docker
Docker容器的实战讲解
这只是Docker的冰山一角,但是我希望这个简单的例子能帮助你理解Docker的基本概念和使用方法。Docker是一个强大的工具,它可以帮助你更有效地开发、部署和运行应用。
136 27
|
13天前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
OSZAR »