
!Piwigo
基于Alpine的Piwigo容器,旨在简化照片画廊的部署流程。Piwigo是一款开源照片管理系统,该镜像集成Nginx和PHP-FPM,提供轻量、高效的运行环境,适合个人或小型团队搭建和管理照片库。
准备文件结构
创建Piwigo文件夹,并在其中创建compose.yaml和.env文件:
Piwigo ├── .env └── compose.yaml
编写compose.yaml
yamlnetworks: piwigo-network: external: false services: piwigo-main: image: piwigo/piwigo:latest restart: always environment: - TZ=${timezone} networks: - piwigo-network ports: - ${piwigo_port}:80 depends_on: - piwigo-db volumes: - ./piwigo-data/piwigo:/var/www/html/piwigo/ - ./piwigo-data/scripts:/usr/local/bin/scripts/ piwigo-db: image: docker.io/library/mariadb:lts restart: always environment: - MARIADB_RANDOM_ROOT_PASSWORD=true - MARIADB_USER=piwigodb_user - MARIADB_DATABASE=piwigodb - MARIADB_PASSWORD=${db_user_password} - TZ=${timezone} networks: - piwigo-network volumes: - ./piwigo-data/mysql:/var/lib/mysql
配置.env文件
编辑.env文件,设置数据库密码、端口和时区:
db_user_password=your_strong_password # 建议使用强密码,可通过密码生成器生成 piwigo_port=8080 # 暴露的端口,可根据需要修改 timezone=Europe/Paris # 时区设置,如Asia/Shanghai
启动容器
在Piwigo目录下执行:
bashdocker compose up -d
如需通过域名或子路径访问,可配置Nginx反向代理。
域名访问配置
nginxserver { listen 80; server_name my_domain.tld; # 替换为你的域名 location / { proxy_pass http://127.0.0.1:8080/; # 与.env中的piwigo_port保持一致 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
子路径访问配置(如my_domain.tld/gallery)
在location段添加X-Forwarded-Prefix头:
nginxserver { listen 80; server_name my_domain.tld; location /gallery/ { # 子路径 proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Prefix /gallery; # 子路径前缀 } }
容器启动后,通过浏览器访问(如http://localhost:8080),在安装页面填写数据库信息:
db_user_password值创建管理员账户后,完成安装。
bashdocker compose down
bash# --delete-before会删除旧备份,请谨慎使用 rsync -r --delete-before ./piwigo-data/ ./piwigo-data.bck/
更新前建议先备份数据
bashdocker compose down
bashdocker compose pull
bashdocker compose up -d
注意:通过Web界面更新Piwigo不能替代容器更新,需通过上述步骤更新容器。
编辑compose.yaml,将piwigo-db的镜像改为mysql:lts(注意区分大小写)。
若需连接已存在的MySQL/MariaDB数据库,使用compose-nodb.yaml并将其重命名为compose.yaml。可通过.env文件设置piwigo_port或直接编辑compose文件修改端口。
在./piwigo-data/scripts/目录下创建user.sh脚本,可在Nginx和PHP启动前执行命令(以root权限运行)。例如安装额外依赖:
bash# 安装pandoc示例 apk add --no-cache pandoc
Alpine可用软件包列表可参考Alpine软件包索引。
容器通过piwigo-network桥接网络通信,内部流量隔离。
所有持久化数据存储在./piwigo-data/目录:
piwigo/:Piwigo应用文件,更新时会自动同步新版本文件mysql/:MariaDB/MySQL数据库文件scripts/:用户自定义脚本目录,用于扩展功能以下是 piwigo/piwigo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务