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

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

  • 一、Plik介绍
    • [1.1 Plik简介](#1.1 Plik简介)
    • [1.2 Plik特点](#1.2 Plik特点)
  • 二、本地环境介绍
    • [2.1 本地环境规划](#2.1 本地环境规划)
    • [2.2 本次实践介绍](#2.2 本次实践介绍)
  • 三、本地环境检查
    • [3.1 检查Docker服务状态](#3.1 检查Docker服务状态)
    • [3.2 检查Docker版本](#3.2 检查Docker版本)
    • [3.3 检查docker compose 版本](#3.3 检查docker compose 版本)
  • 四、下载Plik镜像
  • 五、部署Plik临时文件上传系统
    • [5.1 创建挂载目录](#5.1 创建挂载目录)
    • [5.2 创建Plik容器](#5.2 创建Plik容器)
    • [5.3 检查plik容器状态](#5.3 检查plik容器状态)
    • [5.4 检查plik容器日志](#5.4 检查plik容器日志)
  • 六、Plik的基本使用
    • [6.1 访问Plik首页](#6.1 访问Plik首页)
    • [6.2 Plik的基本设置](#6.2 Plik的基本设置)
    • [6.3 上传测试文件](#6.3 上传测试文件)
    • [6.4 分享文件](#6.4 分享文件)

一、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

二、本地环境介绍

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正常运行。

bash 复制代码
[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版本

bash 复制代码
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

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

bash 复制代码
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载Plik镜像

从docker hub拉取Plik镜像

bash 复制代码
[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 创建挂载目录

创建挂载目录

bash 复制代码
mkdir -p /data/plik/data

设置权限

bash 复制代码
chmod -R 777 /data/plik/

5.2 创建Plik容器

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

bash 复制代码
docker run  -d  \
--name plik \
-p 8566:8080  \
-v /data/plik/data:/home/plik/server/files  \
rootgg/plik

使用docker compose运行plik容器

yaml 复制代码
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容器
bash 复制代码
[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容器正常启动。

bash 复制代码
[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服务正常运行。

bash 复制代码
[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 分享文件

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

相关推荐
Linux运维技术栈21 分钟前
Ansible(自动化运维)环境搭建及ansible-vault加密配置
运维·自动化·ansible
Bessssss2 小时前
centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
linux·运维·centos
苹果醋32 小时前
Golang的文件加密工具
运维·vue.js·spring boot·nginx·课程设计
jwensh2 小时前
【Jenkins】Declarative和Scripted两种脚本模式有什么具体的区别
运维·前端·jenkins
豆豆豆豆变3 小时前
Docker轻量级可视化工具Portainer
docker·容器·自动化运维
花晓木3 小时前
k8s etcd 数据损坏处理方式
容器·kubernetes·etcd
运维&陈同学3 小时前
【模块一】kubernetes容器编排进阶实战之基于velero及minio实现etcd数据备份与恢复
数据库·后端·云原生·容器·kubernetes·etcd·minio·velero
花晓木3 小时前
k8s备份 ETCD , 使用velero工具进行备份
容器·kubernetes·etcd
大熊程序猿3 小时前
xxl-job docker 安装
运维·docker·容器
董健正3 小时前
centos制作离线安装包
linux·运维·centos