【Docker项目实战】使用Docker部署pigallery照片管理系统
- 一、pigallery2介绍
-
- [1.1 pigallery2简介](#1.1 pigallery2简介)
- [1.2 pigallery2特点](#1.2 pigallery2特点)
- 1.3pigallery2使用场景
- 二、本地环境介绍
-
- [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。