Docker实战 | 在Docker环境下安装paste代码分享工具
Docker实战 | 在Docker环境下安装paste代码分享工具
一、paste介绍
1.1 项目简介
Paste 是一款轻量级的代码编写与分享网页应用,前端基于 React 框架构建,后端数据存储由独立的 bytebin Web 服务处理。项目以简洁为核心设计理念,让开发者能够快速编写代码并通过分享链接将内容便捷地传递给他人。
1.2 主要特点
- React 驱动的前端:基于 React 框架构建,界面响应迅速,用户体验流畅。
- bytebin 后端存储:采用独立的 bytebin Web 服务作为后端,实现前后端解耦,架构清晰、易于扩展。
- Monaco Editor 编辑器:集成 VS Code 同款编辑器引擎,提供专业级的代码编辑体验。
- 语法高亮:支持多种编程语言的语法高亮,代码结构一目了然。
- 自动缩进:智能自动缩进功能,让代码格式整洁规范。
- 多语言支持:涵盖主流编程语言,满足不同场景的代码编写需求。
- 主题切换:提供多种主题可选,适配不同开发者的视觉偏好。
- 缩放调节:支持编辑器内容缩放,方便查看大段代码或适配不同屏幕。
- 行级链接定位:支持生成指向特定行或代码片段的链接,精准定位共享内容。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 | 备注 |
|---|---|---|---|---|---|
| jeven | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.5.0 | paste | —— |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下安装paste代码分享工具。
三、本地环境检查
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; preset: enabled)
Active: active (running) since Sun 2026-05-31 23:17:28 CST; 1 month 29 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 945 (dockerd)
Tasks: 117
Memory: 787.7M (peak: 1018.4M swap: 11.8M swap peak: 12.6M)
CPU: 58min 1.415s
CGroup: /system.slice/docker.service

3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose version
Docker Compose version v2.39.4
四、拉取paste镜像
4.1 Github地址
- Github项目地址:https://github.com/lucko/paste
4.2 镜像介绍
- paste原镜像
- 后端: ghcr.io/lucko/bytebin
- 前端:ghcr.io/lucko/paste
- paste国内镜像(可快速拉取)
- 后端: registry.cn-hangzhou.aliyuncs.com/jeson/bytebin:latest
- 前端:registry.cn-hangzhou.aliyuncs.com/jeson/paste:latest
4.3 拉取镜像
执行以下命令,拉取 Paste 镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/jeson/bytebin:latest
docker pull registry.cn-hangzhou.aliyuncs.com/jeson/paste:latest

五、部署paste服务
5.1 下载项目
- 执行以下命令,拉取paste项目。
git clone https://github.com/lucko/paste
- paste项目拉取完毕后,查看项目内容:
root@jeven:~# cd /data/paste/
root@jeven:/data/paste# ls -l
总计 144
-rw-r--r-- 1 root root 2221 8月 14 13:48 API.md
drwxr-xr-x 2 root root 4096 8月 14 15:00 docker
-rw-r--r-- 1 root root 626 8月 14 15:01 docker-compose.yml
-rw-r--r-- 1 root root 363 8月 14 13:48 Dockerfile
-rw-r--r-- 1 root root 734 8月 14 13:48 eslint.config.js
-rw-r--r-- 1 root root 1238 8月 14 13:48 index.html
-rw-r--r-- 1 root root 1111 8月 14 13:48 LICENSE.txt
-rw-r--r-- 1 root root 1251 8月 14 13:48 package.json
drwxr-xr-x 3 root root 4096 8月 14 13:48 public
-rw-r--r-- 1 root root 2220 8月 14 13:48 README.md
drwxr-xr-x 6 root root 4096 8月 14 13:48 src
-rw-r--r-- 1 root root 665 8月 14 13:48 tsconfig.app.json
-rw-r--r-- 1 root root 119 8月 14 13:48 tsconfig.json
-rw-r--r-- 1 root root 593 8月 14 13:48 tsconfig.node.json
-rw-r--r-- 1 root root 134 8月 14 13:48 vercel.json
-rw-r--r-- 1 root root 374 8月 14 13:48 vite.config.ts
-rw-r--r-- 1 root root 81610 8月 14 13:48 yarn.lock
5.2 修改部署文件
我们需要对部署文件
docker-compose.yml进行三处修改:将前端和后端容器镜像替换为国内镜像,以加速拉取;同时,在后端容器的环境变量中,设置其绑定到所有网卡的 8080 端口。具体修改如下:
services:
# frontend service
paste:
image: registry.cn-hangzhou.aliyuncs.com/jeson/paste
# backend service
bytebin:
image: registry.cn-hangzhou.aliyuncs.com/jeson/bytebin
volumes:
- data:/opt/bytebin/content
environment:
BYTEBIN_MISC_KEYLENGTH: 5
BYTEBIN_HTTP_HOST: 0.0.0.0
BYTEBIN_HTTP_PORT: 8080
# reverse proxy
nginx:
image: nginx:alpine
command: ['nginx', '-g', 'daemon off;']
depends_on:
- paste
- bytebin
ports:
- 8080:80
volumes:
- ./docker/reverseproxy-nginx.conf:/etc/nginx/conf.d/default.conf:ro
volumes:
data: {}

5.3 创建paste容器
部署文件修改完毕后,我们一键创建paste服务。
docker compose up -d

5.4 查看paste容器状态
检查paste容器运行状态,确保paste容器正常启动。
root@jeven:/data/paste# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
paste-bytebin-1 registry.cn-hangzhou.aliyuncs.com/jeson/bytebin "/__cacert_entrypoin…" bytebin 22 seconds ago Up 22 seconds (health: starting) 8080/tcp
paste-nginx-1 nginx:alpine "/docker-entrypoint.…" nginx 22 seconds ago Up 22 seconds 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp
paste-paste-1 registry.cn-hangzhou.aliyuncs.com/jeson/paste "/docker-entrypoint.…" paste 22 seconds ago Up 22 seconds 80/tcp

5.5 检查paste容器日志
检查容器运行日志,确保paste服务正常运行。
docker compose logs

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

6.2 编辑代码
在编辑器内,我们编写需要分享的代码,编写完毕后,点击保存。

6.3 分享代码
代码片段保存后,会生成一个分享链接,我们点击即可复制该链接。

将该分享链接粘贴到局域网内其余电脑的浏览器,可以看到刚才编写的代码片段。

七、总结
本次实践基于Ubuntu 24.04系统,依托Docker容器技术完成了Paste代码分享工具的完整部署流程,有效解决了官方镜像拉取缓慢的问题。通过替换国内阿里云镜像、配置后端服务监听全网网卡,规避了容器端口访问异常、服务连接拒绝等常见部署报错,保障了前后端服务正常联动。部署完成后,成功实现了代码在线编辑、保存以及局域网链接分享的核心功能,验证了整套部署方案的可行性与稳定性。Paste工具轻量化、部署便捷、使用简单,十分适合个人开发者、内网团队用于快速共享代码片段,具备极高的日常实用性。
- 点赞
- 收藏
- 关注作者
评论(0)