本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
PrivateBin 是一个极简的开源在线粘贴板,服务器对粘贴数据零知识。数据在浏览器端使用256位AES的伽罗瓦计数器模式(GCM)进行加密和解密。
本仓库包含创建Docker镜像所需的Dockerfile和资源,预安装了PrivateBin实例并采用安全默认配置。镜像基于Docker Hub的Alpine镜像构建,扩展了生成讨论头像所需的GD模块,以及用于提供静态JavaScript库、CSS、Logo和动态PHP渲染HTML的Nginx Unit应用服务器。Nginx Unit的所有日志(访问日志和错误日志)均转发至docker logs。
与Nginx Web服务器、php-fpm & Alpine镜像相比,本镜像体积更小,但缺少以下功能:
你可以使用前端Web服务器解决这些限制,或使用其他提供完整Nginx Web服务器的镜像,这些镜像开箱即支持上述功能。
这是一体化镜像(Docker Hub / GitHub),可与PrivateBin支持的任何存储后端配合使用——基于文件的存储、数据库、Google Cloud或S3存储。我们还提供针对各后端的专用镜像:
所有镜像均包含PrivateBin的发布版本,并提供以下标签:
latest:最新推送镜像的别名,通常与nightly相同,但不包含edgenightly:基于升级后的Alpine版本,包含最新PrivateBin版本及Docker镜像仓库的最新变更edge:基于升级后的Alpine edge版本,包含最新PrivateBin版本stable:包含最新PrivateBin版本及Docker镜像Git仓库的最新标记发布版——当Alpine有重要安全修复或Alpine新版本发布时更新1.5.1:包含PrivateBin 1.5.1版本及Docker镜像Git仓库的最新标记发布版——当Alpine有重要安全修复或Alpine新版本发布时更新,与stable相同1.5.1-...:提供特定不可变镜像的选择若通过拉取自动更新镜像,建议使用stable、nightly或latest标签。若需控制和可重复性,或使用编排工具,数字标签可能更合适。edge标签提供Alpine未来版本软件的预览,作为检测镜像构建问题的预警系统。
镜像托管在Docker Hub和GitHub容器仓库:
privatebin或docker.io/privatebinghcr.io/privatebin假设已成功安装Docker并具备互联网访问,可从Docker Hub拉取并运行镜像:
$ docker run -d --restart="always" --read-only -p 8080:8080 -v $PWD/privatebin-data:/srv/data privatebin/unit-alpine
参数详情:
-v $PWD/privatebin-data:/srv/data:将$PWD/privatebin-data替换为系统中用于持久化粘贴数据和其他服务数据的文件夹路径。确保重启或替换镜像后粘贴数据不丢失。若仅测试镜像或使用数据库/Google Cloud Storage后端,可省略。-p 8080:8080:容器内Nginx Unit监听8080端口,此参数将其暴露到系统的8080端口。生产环境中,建议在前端使用反向代理进行HTTPS终止。--read-only:本镜像支持只读模式运行。减少攻击面,防止镜像服务中的漏洞覆盖容器内任意文件。仅/tmp、/var/tmp、/var/run和/srv/data可写入。-d:后台启动容器。可使用docker ps和docker logs检查容器状态。--restart="always":容器崩溃时自动重启,主要用于生产环境。注意:挂载的卷必须由UID 65534/GID 82拥有。若在启用"userns-remap"的Docker实例中运行容器,需将子UID/子GID范围添加到这些数字中。
如需使用自定义conf.php文件(例如启用文件上传或使用不同模板),可添加第二个卷:
$ docker run -d --restart="always" --read-only -p 8080:8080 -v $PWD/conf.php:/srv/cfg/conf.php:ro -v $PWD/privatebin-data:/srv/data privatebin/unit-alpine
注意:文件系统存储后端开箱即支持。镜像包含MySQL和PostgreSQL的PDO模块,支持数据库后端,但在1.4.0版本前,使用数据库后端时仍需持久化/srv/data以保存服务器salt和流量限制器数据。
以下变量传递给PHP应用以支持多种场景,允许通过环境修改设置而非配置文件。大多数与存储后端相关:
AWS_ACCESS_KEY_IDAWS_CONTAINER_AUTHORIZATION_TOKENAWS_CONTAINER_CREDENTIALS_FULL_URIAWS_CONTAINER_CREDENTIALS_RELATIVE_URIAWS_DEFAULT_REGIONAWS_PROFILEAWS_ROLE_ARNAWS_ROLE_SESSION_NAMEAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKENAWS_STS_REGIONAL_ENDPOINTSAWS_WEB_IDENTITY_TOKEN_FILEAWS_SHARED_CREDENTIALS_FILEGCLOUD_PROJECTGOOGLE_APPLICATION_CREDENTIALSGOOGLE_CLOUD_PROJECTPRIVATEBIN_GCS_BUCKET以下变量默认不使用,但可在自定义配置文件中启用,以避免敏感信息存储在配置文件中:
STORAGE_HOSTSTORAGE_LOGINSTORAGE_PASSWORDSTORAGE_CONTAINERCONFIG_PATH镜像支持以下两个环境变量调整时区,主要确保日志显示正确本地时间:
TZPHP_TZ注意:应用内部基于创建时的时区计算粘贴过期的UNIX时间戳。修改PHP_TZ将影响过期时间,时区增加会导致过期提前,减少则延迟。
可将自定义php.ini挂载到/etc/php/conf.d/文件夹。可通过Unix socket /run/control.unit.sock运行时动态修改Nginx Unit配置——若需持久化Unit配置更改,需将/var/lib/unit挂载为持久卷。例如,如需调整服务接受的文件上传最大大小(默认10 MiB)。
以下是Kubernetes部署示例:
--- apiVersion: apps/v1 kind: Deployment metadata: name: privatebin-deployment labels: app: privatebin spec: replicas: 3 selector: matchLabels: app: privatebin template: metadata: labels: app: privatebin spec: securityContext: runAsUser: 65534 runAsGroup: 82 fsGroup: 82 containers: - name: privatebin image: privatebin/unit-alpine:stable ports: - containerPort: 8080 env: - name: TZ value: Antarctica/South_Pole - name: PHP_TZ value: Antarctica/South_Pole securityContext: readOnlyRootFilesystem: true privileged: false allowPrivilegeEscalation: false livenessProbe: httpGet: path: / port: 8080 readinessProbe: httpGet: path: / port: 8080 volumeMounts: - mountPath: /srv/data name: privatebin-data readOnly: False - mountPath: /run name: run readOnly: False - mountPath: /tmp name: tmp readOnly: False volumes: - name: run emptyDir: medium: "Memory" - name: tmp emptyDir: medium: "Memory"
注意:privatebin-data卷需为跨节点共享的持久卷(如NFS共享)。PrivateBin 1.4.0及以上版本使用数据库或Google Cloud Storage时不再需要。
镜像包含两个管理脚本,用于在存储后端间迁移数据、按ID删除粘贴、删除空目录(仅文件系统存储)、清理过期粘贴及显示统计信息。可在运行中的镜像内执行,或使用与服务镜像相同的卷作为替代入口点运行命令(推荐前者)。
# 假设使用--name privatebin命名容器 $ docker exec -t privatebin administration --help Usage: administration [--delete <paste id> | --empty-dirs | --help | --purge | --statistics] Options: -d, --delete deletes the requested paste ID -e, --empty-dirs removes empty directories (only if Filesystem storage is configured) -h, --help displays this help message -p, --purge purge all expired pastes -s, --statistics reads all stored pastes and comments and reports statistics docker exec -t privatebin migrate --help migrate - Copy data between PrivateBin backends Usage: migrate [--delete-after] [--delete-during] [-f] [-n] [-v] srcconfdir [<dstconfdir>] migrate [-h|--help] Options: --delete-after delete data from source after all pastes and comments have successfully been copied to the destination --delete-during delete data from source after the current paste and its comments have successfully been copied to the destination -f forcefully overwrite data which already exists at the destination -h, --help displays this help message -n dry run, do not copy data -v be verbose <srcconfdir> use storage backend configration from conf.php found in this directory as source <dstconfdir> optionally, use storage backend configration from conf.php found in this directory as destination; defaults to: /srv/bin/../cfg/conf.php
注意:如需在不同存储后端间迁移数据,需使用一体化镜像privatebin/unit-alpine,因其包含所有支持后端的驱动和库。使用变体镜像时,仅能在相同存储类型的后端间迁移(如两个文件系统路径或两个数据库后端)。
如需重现镜像,运行:
$ docker build -t privatebin/unit-alpine .
Nginx Unit提供静态文件服务并缓存。对/var/www根目录下index.php的请求通过PHP SAPI模块处理。其他PHP文件和数据存储在/srv下。
Nginx配置仅支持HTTP,建议前端使用反向代理进行HTTPS卸载,减少TLS栈攻击面。本镜像中的Nginx配置支持文本内容的deflate/gzip压缩。
镜像构建过程中,从Github下载PrivateBin发布包。所有下载的Alpine包和PrivateBin包均通过加密签名验证,确保未被篡改后部署到镜像中。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429