搭建属于你的照片云:Docker 部署 PiGallery2 全流程

【Docker项目实战】使用Docker部署pigallery照片管理系统

  • 一、pigallery2介绍
  • 二、本地环境介绍
    • [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 版本)
  • 四、下载pigallery2镜像
  • 五、部署pigallery2
    • [5.1 创建部署目录](#5.1 创建部署目录)
    • [5.2 编辑pigallery2部署文件](#5.2 编辑pigallery2部署文件)
    • [5.3 创建pigallery2容器](#5.3 创建pigallery2容器)
    • [5.4 检查pigallery2容器状态](#5.4 检查pigallery2容器状态)
    • [5.5 检查pigallery2容器日志](#5.5 检查pigallery2容器日志)
  • 六、访问pigallery2首页
    • [6.1 进入pigallery2登录页](#6.1 进入pigallery2登录页)
    • [6.2 访问pigallery2首页](#6.2 访问pigallery2首页)
    • [6.3 上传图片](#6.3 上传图片)
  • 七、总结

一、pigallery2介绍

1.1 pigallery2简介

pigallery2一个快速的目录优先照片库网站,具有丰富的用户界面,针对在低资源服务器(尤其是在树莓派)上运行进行了优化。

1.2 pigallery2特点

✔️ 优势

  • ⚡ 快,就像真的一样。
  • ✔️ 简单。指向您的照片文件夹和临时文件夹,您就可以开始了。

⛔ 弱点:

  • 😥 这很简单。显示你所拥有的,仅此而已。没有图库更改(照片删除、旋转、增强、标记、组织等),您的图库文件夹是只读的。
  • 📁 针对具有 <100K 照片和 <5k 照片/文件夹的画廊进行了优化。它将在更大的画廊上工作,但它会开始放慢速度。

1.3pigallery2使用场景

  • 个人照片收藏:你可以使用PiGallery2来创建自己的照片库,并将照片按照目录进行组织。你可以随时浏览和查找自己的照片。

  • 家庭相册:你可以将家庭成员的照片整理到一个独立的目录中,并使用PiGallery2来共享给家庭成员。他们可以通过浏览器访问照片,并留下评论和标记喜欢的照片。

  • 照片展览:如果你是一个摄影师或者艺术家,你可以使用PiGallery2来创建一个在线照片展览。你可以创建不同的相册,展示你的作品,并与观众进行互动。

  • 学术研究:研究人员可以使用PiGallery2来整理和展示与他们的研究项目相关的照片。他们可以将照片按照不同的主题或者实验进行分类,并在照片上添加标签和注释。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostname IP地址 操作系统版本 Docker版本
jeven 192.168.3.166 centos 7.6 2 20.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下部署pigallery2照片管理系统。

三、本地环境检查

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: activating (start) since Tue 2024-02-06 14:02:01 CST; 26s ago
     Docs: https://docs.docker.com
 Main PID: 11739 (dockerd)
    Tasks: 9
   Memory: 109.4M
   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

四、下载pigallery2镜像

从docker hub拉取 bpatrik/pigallery2:latest镜像

bash 复制代码
[root@jeven ~]# docker pull   bpatrik/pigallery2:latest
latest: Pulling from bpatrik/pigallery2
Digest: sha256:968474853af12d64843c5a2170f34fa4082c2a87b32fc61657b793d554d28a9b
Status: Image is up to date for bpatrik/pigallery2:latest
docker.io/bpatrik/pigallery2:latest

五、部署pigallery2

5.1 创建部署目录

创建部署目录/data/pigallery2/

bash 复制代码
mkdir -p /data/pigallery2/  && cd /data/pigallery2/

5.2 编辑pigallery2部署文件

可以使用docker-cli创建pigallery2容器

bash 复制代码
docker run \
   -p 8022:80 \
   -restart always \
   --name pigallery2 \
   -e NODE_ENV=production \
   -v /data/pigallery2/config:/app/data/config \
   -v /data/pigallery2/db:/app/data/db \
   -v  /data/pigallery2/tmp:/app/data/tmp \
    -v  /data/pigallery2/images:/app/data/images \
   bpatrik/pigallery2:latest

本次实践部署使用docker compose方式,编辑docker-compose.yaml部署文件。

yaml 复制代码
version: '3'
services:
  pigallery2:
    image: bpatrik/pigallery2:latest
    ports:
      - 8022:80
    restart: always
    environment:
      - NODE_ENV=production
    volumes:
      - /data/pigallery2/config:/app/data/config
      - /data/pigallery2/db:/app/data/db
      - /data/pigallery2/tmp:/app/data/tmp
      - /data/pigallery2/images:/app/data/images

5.3 创建pigallery2容器

使用docker-compose.yaml文件创建pigallery2容器

bash 复制代码
[root@jeven pigallery2]# docker compose up -d
[+] Running 2/2
 ⠿ Network pigallery2_default         Created                                                                                                   0.0s
 ⠿ Container pigallery2-pigallery2-1  Started                                                                                                   1.5s

5.4 检查pigallery2容器状态

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

bash 复制代码
[root@jeven pigallery2]# docker compose ps
NAME                      COMMAND                  SERVICE             STATUS               PORTS
pigallery2-pigallery2-1   "node ./src/backend/..."   pigallery2          running (starting)   0.0.0.0:8022->80/tcp, :::8022->80/tcp

5.5 检查pigallery2容器日志

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

bash 复制代码
[root@jeven pigallery2]# docker compose logs
pigallery2-pigallery2-1  | 2/6/2024, 6:29:06 AM[INFO] [server] running diagnostics...
pigallery2-pigallery2-1  | (node:1) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
pigallery2-pigallery2-1  | (Use `node --trace-warnings ...` to show where the warning was created)
pigallery2-pigallery2-1  | 2/6/2024, 6:29:06 AM[INFO] Updating database scheme
pigallery2-pigallery2-1  | (node:20) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
pigallery2-pigallery2-1  | (Use `node --trace-warnings ...` to show where the warning was created)
pigallery2-pigallery2-1  | 2/6/2024, 6:29:11 AM[INFO] [JobManager] Running job schedules
pigallery2-pigallery2-1  | 2/6/2024, 6:29:11 AM[INFO] [server] Listening on port 80

六、访问pigallery2首页

6.1 进入pigallery2登录页

访问地址:http://192.168.3.166:8022,将IP替换为自己服务器IP地址,进入到pigallery2登录页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。

6.2 访问pigallery2首页

默认登录账号为admin/admin,输入账号admin/admin

6.3 上传图片

进入宿主机的/data/pigallery2/images目录下,上传本地图片到该目录下。

bash 复制代码
[root@jeven images]# pwd
/data/pigallery2/images
[root@jeven images]# ls
中秋图片.jpg  春节.jpg

刷新pigallery2首页,可以看到上传的图片。

七、总结

PiGallery2是一个快速的目录优先照片库网站。它专门针对在低资源服务器上(如树莓派)进行了优化。PiGallery2的部署非常简单,用户界面简单直观。它具有快速的图片加载速度和页面响应速度,让用户可以快速浏览照片。通过目录浏览功能,用户可以迅速找到所需的照片。如果你有这方面的需求,不妨尝试使用PiGallery2。

相关推荐
说实话起个名字真难啊8 小时前
用docker来安装openclaw
docker·ai·容器
恬静的小魔龙9 小时前
【群晖Nas】群晖Nas中实现SVN Server功能、Docker/ContainerManager等
docker·svn·容器
Zfox_9 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
春日见10 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡10 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
liu****11 小时前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术
logocode_li12 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s
_运维那些事儿1 天前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
lpruoyu1 天前
【Docker进阶-05】Docker网络
网络·docker·容器
人间打气筒(Ada)1 天前
k8s:CNI网络插件flannel与calico
linux·云原生·容器·kubernetes·云计算·k8s