【Docker项目实战】使用Docker部署MicroBin粘贴应用程序

举报
江湖有缘 发表于 2024/12/26 17:50:09 2024/12/26
【摘要】 【Docker项目实战】使用Docker部署MicroBin粘贴应用程序

@TOC

一、 MicroBin介绍

1.1 MicroBin简介

MicroBin 是一个超小型、功能丰富、高度可配置、安全、独立且自托管的 Pastebin Web 应用程序,使用 Rust 编程语言开发。它旨在为用户提供一种简单、高效的方式,以分享文件、文本和URL,并支持多种高级特性,如服务器端和客户端加密、文件上传、原始文本服务、QR码生成、URL缩短与重定向等。

1.2 主要特点

  • 完全独立的可执行文件:MicroBin 被设计成一个微型箱(微型应用程序),这意味着它可以被打包成一个单独的文件,无需外部依赖即可运行。
  • 服务器端和客户端加密:确保数据在传输过程中的安全性,保护用户隐私。
  • 文件上传服务:允许用户通过简单的接口上传文件到指定位置(如 server.com/file/pig-dog-cat)。
  • 原始文本服务:提供直接访问上传文本的功能,例如通过 server.com/raw/pig-dog-cat 可以直接查看或下载原始文本内容。
  • QR码支持:生成文件或链接的二维码,便于分享。
  • URL缩短与重定向:提供短链接服务,使长URL更易于分享和记忆。
  • 动物名称作为标识符:使用64种不同动物的名字代替传统的数字或字母组合作为上传内容的唯一标识符,增加趣味性和易记性。
  • 轻量级和JSON数据库支持:MicroBin 支持轻量级的数据存储解决方案,包括基于JSON的数据库,适合资源有限的环境。
  • 私人和公共上传选项:支持创建私有或公开的上传内容,根据需求设置是否可编辑以及过期时间。
  • 自动管理和永不过期的上传:对于需要长期保存的内容,MicroBin 提供了自动管理功能,确保上传内容不会因时间而失效。
  • 全自动暗模式和定制样式支持:内置了对暗模式的支持,并允许用户根据个人偏好调整界面样式,仅需少量的CSS和纯JavaScript代码即可实现高度定制化。

二、本次实践规划

2.1 本地环境规划

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

hostname IP地址 操作系统版本 Docker版本 镜像名称 备注
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 danielszabo99/microbin:latest ——

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署MicroBin粘贴应用程序。

三、本地环境检查

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; 3 weeks 0 days ago
       Docs: https://docs.docker.com
   Main PID: 10450 (dockerd)
      Tasks: 150 (limit: 9387)
     Memory: 3.4G
        CPU: 46min 54.584s
     CGroup: /system.slice/docker.service
             ├─10450 /usr/bin/dockerd
             ├─10459 containerd --config /var/run/docker/containerd/containerd.toml

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

四、下载MicroBin镜像

执行以下命令,拉取以下MicroBin镜像。

root@jeven01:~# docker pull danielszabo99/microbin:latest
latest: Pulling from danielszabo99/microbin
5f1c2ac354fd: Pull complete
537fdabb8bfb: Pull complete
4f4fb700ef54: Pull complete
55a041d1e093: Pull complete
7244603c5244: Pull complete
2b725e797e49: Pull complete
Digest: sha256:c5bd4643135540a68a2846950fe4f65f3bcc94b62ed7c7644e563dfde6f1732c
Status: Downloaded newer image for danielszabo99/microbin:latest
docker.io/danielszabo99/microbin:latest

五、部署MicroBin应用

5.1 创建部署目录

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

5.2 docker-cli方式部署(可选)

可使用以下docker-cli方式,快速部署MicroBin应用。

docker run -d \
   --restart always  \
   --name microbin \
   -p 6300:8080 \
   -v /data/microbin/data:/app/microbin_data \
   -e MICROBIN_ADMIN_USERNAME=jeven \
   -e MICROBIN_ADMIN_PASSWORD=admin  \
   -e MICROBIN_ENABLE_BURN_AFTER=true \
   danielszabo99/microbin:latest

5.3 编辑部署文件

本次实践使用docker compose方式部署,在部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。

vim docker-compose.yaml
version: '3'

services:
  microbin:
    image: danielszabo99/microbin:latest
    container_name: microbin
    restart: always
    ports:
     - "6300:8080"
    volumes:
     - /data/microbin/data:/app/microbin_data
    environment:
      MICROBIN_ADMIN_USERNAME: jeven
      MICROBIN_ADMIN_PASSWORD: admin
      MICROBIN_ENABLE_BURN_AFTER: "true"

5.4 创建MicroBin容器

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

root@jeven01:/data/microbin# docker compose up -d
[+] Running 2/2
 ✔ Network microbin_default  Created                                                                                0.1s
 ✔ Container microbin        Started                                                                                0.3s

5.5 查看MicroBin容器状态

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

root@jeven01:/data/microbin# docker compose ps
NAME                IMAGE                           COMMAND             SERVICE             CREATED             STATUS           PORTS
microbin            danielszabo99/microbin:latest   "microbin"          microbin            21 seconds ago      Up 21 seconds       0.0.0.0:6300->8080/tcp, :::6300->8080/tcp

5.6 检查MicroBin容器日志

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

root@jeven01:/data/microbin# docker compose logs
microbin  | 2024-11-26T06:48:55 [INFO] - MicroBin starting on http://0.0.0.0:8080
microbin  | 2024-11-26T06:48:55 [INFO] - Starting 1 workers
microbin  | 2024-11-26T06:48:55 [INFO] - Actix runtime found; starting in Actix runtime

六、访问MicroBin服务

访问地址:http://192.168.3.88:6300,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

在这里插入图片描述

七、MicroBin的基本使用

7.1 登录管理后台

访问地址:http://192.168.3.88:6300/admin,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。输入我们之前自定义设置的登录账号密码,可登录MicroBin的管理后台页面。

在这里插入图片描述

在这里插入图片描述

7.2 粘贴测试代码内容

在MicroBin主页中,粘贴测试代码,保存即可。

在这里插入图片描述

7.3 复制分享链接

保存粘贴框内的内容后,我们复制浏览器的链接。

在这里插入图片描述

在其余电脑打开分享链接,可以看到正常看到粘贴的内容。

在这里插入图片描述

八、总结

通过使用 Docker 部署 MicroBin 粘贴应用程序,深刻体会到其便捷性与高效性。部署过程虽有挑战,但成功后,MicroBin 丰富的功能令人惊喜,无论是文件分享还是加密处理都表现出色。其高度可配置性为个性化使用提供可能,在实际应用中展现出良好的实用性与稳定性,是一款值得推荐的自托管粘贴应用解决方案。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。