宝塔面板 docker 部署 pinry 精美瀑布流图片分享系统
Pinry 是一个开源标记和共享图像、视频和网页管理平台,类似于 Pinterest,支持私有化部署。主要功能包括:
图片收藏:支持拖拽上传、批量导入
标签管理:方便分类和检索
多用户支持:适合团队协作
响应式设计:适配PC和移动端
项目:https://github.com/pinry/pinry
文档:https://docs.getpinry.com/install-with-docker
准备工作
在开始前,确保你的服务器已安装:
✅ 宝塔面板(建议 7.9+ 版本)
✅ Docker 管理器(在宝塔“软件商店”安装)
✅ 域名(可选)(如需外网访问,建议绑定域名并配置SSL)
使用宝塔面板Docker部署Pinry
登录面板打开终端页面,开始拉取Pinry镜像
docker pull getpinry/pinry
然后使用如下命令行:
# this should be an abs-path not relative path like "." export DATA_PATH=/abs/path/to/your/data/directory sudo docker run -d=true -p=86:80 \ -v=${DATA_PATH}:/data \ getpinry/pinry
代码解释:
export DATA_PATH=/abs/path/to/your/data/directory
作用:设置一个环境变量 DATA_PATH,指定宿主机(你的服务器/本地电脑)上的一个目录,用于持久化存储 Pinry 的数据(图片、数据库等)。
注意:
/abs/path/to/your/data/directory 需要替换为实际的绝对路径(如 /home/user/pinry_data)。
必须是绝对路径,不能使用相对路径(如 . 或 ./data)。
sudo docker run -d=true -p=86:80 \
sudo:以管理员权限运行命令(如果当前用户有 Docker 权限,可省略)。
docker run:启动一个新的 Docker 容器。
-d=true:以“守护进程”模式(后台运行)启动容器。
-p=86:80:端口映射,格式为 宿主机端口:容器端口。
这里将容器的 80 端口(Pinry 的默认 HTTP 端口)映射到宿主机的 86 端口。
如果宿主机 86 端口被占用,可改为其他端口(如 -p=8080:80)。
-v=${DATA_PATH}:/data \
-v:挂载数据卷(Volume),将宿主机的目录映射到容器内。
${DATA_PATH}:/data:
${DATA_PATH} 是前面定义的宿主机目录(如 /home/user/pinry_data)。
/data 是容器内的目录,Pinry 会将其所有数据(图片、数据库等)存储在这里。
目的:持久化数据,即使容器被删除,数据仍会保留在宿主机。
getpinry/pinry
指定使用的 Docker 镜像名称(官方镜像 getpinry/pinry 来自 Docker Hub)。
实际示例
假设你想将数据存储在 /home/user/pinry_data,并让 Pinry 通过宿主机 8080 端口访问:
export DATA_PATH=/home/user/pinry_data sudo docker run -d=true -p=8080:80 \ -v=${DATA_PATH}:/data \ getpinry/pinry
访问地址:http://服务器IP:8080。
执行两段代码后,返回Docker容器ID,就说明已经安装成功了
这个时候访问<IP:86>就应该可以打开Pinry的WEB界面了。
设置
如果想关闭注册和游客不可见,那么你还需要如下设置。
ALLOW_NEW_REGISTRATIONS = False # 关闭用户注册 PUBLIC = False # 所有内容登录可见
备份
只需将data文件夹的内容复制到安全的地方,尽情享受吧:)
域名访问
如果需要配置SSL证书,请在反代设置好后选SSL自动申请证书。
效果还是很不错的~,具体效果看演示吧。
使用感受体验不错,如果你在找一个图片分享系统,不妨试试~~
图片貌似不好导入,都是在前台上传,程序提供的chrome插件,试用了下,发现竟然不好用,奇怪~~