【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首页
6.2 Plik的基本设置
在左侧第一个选项,点击启动后,第一次下载,文件立即从服务器删除。
在左侧第二个选项,点击启动后,开启流媒体。
在左侧第三个选项,点击启用后,上传者可以删除文件。
在左侧第四个选项,点击启用后,上传和下载之前需要输入密码。
在左侧第五个选项,点击启用后,可以在上传的内容中添加评论。
6.3 上传测试文件
将所有Plik设置选项都设置关闭状态
点击上传文件
6.4 分享文件
复制文件链接到其他电脑即可下载。