【Docker项目实战】Docker环境下部署immich照片管理系统
【Docker项目实战】Docker环境下部署immich照片管理系统一、immich介绍1.1 immich简介1.2 immich注意事项1.3 immich使用场景二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载immich镜像五、部署immich照片管理系统5.1 创建目录5.2 编辑docker-compose.yaml文件5.3 创建immich相关容器5.4 检查immich容器状态5.5 检查immich容器日志六、访问immich服务6.1 注册账号6.2 访问immich首页七、immich的基本使用7.1 上传图片7.2 浏览图片7.3 创建相册7.4 查看相册7.5 查看统计数据八、总结一、immich介绍1.1 immich简介直接从您的手机自托管照片和视频备份解决方案。1.2 immich注意事项该项目正在非常积极的开发中。⚠️预计会出现错误和重大更改。⚠️ 请勿将该应用程序用作存储照片和视频的唯一方式。⚠️始终遵循 3-2-1 备份计划为您珍贵的照片和视频1.3 immich使用场景个人照片管理immich提供了一个简单而直观的界面让个人用户能够方便地管理自己的照片集合。用户可以通过标签、日期和描述等元数据对照片进行分类和搜索同时可以进行批量处理和编辑操作。团队协作immich支持多用户使用可以作为团队内部的照片管理工具。团队成员可以共享照片集合并进行评论和讨论。通过权限管理可以精确控制不同用户对照片的访问和编辑权限。专业摄影师对于摄影师来说照片管理是不可或缺的一环。immich提供了针对摄影师的一些特殊功能如支持原始RAW文件的管理和预览、批量导出和水印处理等。摄影师可以方便地对照片进行整理、筛选和处理从而节省时间和提高工作效率。图片库管理immich的强大搜索和分类功能使其成为一个理想的图片库管理工具。无论是个人图片库、企业图片库还是公共图片库都可以通过immich来进行统一管理和检索。用户可以根据需要自定义标签和分类方式从而更方便地找到所需的图片。二、本地环境介绍2.1 本地环境规划本次实践为个人测试环境操作系统版本为centos7.6。hostnameIP地址操作系统版本Docker版本jeven192.168.3.166centos 7.620.10.172.2 本次实践介绍1.本次实践部署环境为个人测试环境生产环境请谨慎2.该项目提示更新频繁请谨慎部署生产环境3.在Docker环境下部署immich照片管理系统。三、本地环境检查3.1 检查Docker服务状态检查Docker服务是否正常运行确保Docker正常运行。[rootjeven ~]# systemctl status docker● docker.service - Docker Application Container Engine Loaded: loaded(/usr/lib/systemd/system/docker.service;enabled;vendor preset: disabled)Active: active(running)since Mon2023-12-1116:37:11 CST;5h 58min ago Docs: https://docs.docker.com Main PID:11899(dockerd)Tasks:53Memory:187.3M CGroup: /system.slice/docker.service3.2 检查Docker版本检查Docker版本当前版本为20.10.17。[rootjeven ~]# docker -vDocker version20.10.17, build 100c7013.3 检查docker compose 版本检查Docker compose版本确保2.0以上版本。[rootjeven ~]# docker compose versionDocker Compose version v2.6.0四、下载immich镜像从谷歌仓库和docker hub仓库拉取immich相关镜像版本为最新的latest版本。dockerpull ghcr.io/imagegenius/immich:latestdockerpull redisdockerpull postgres:14五、部署immich照片管理系统5.1 创建目录创建主机挂载目录mkdir-p/data/immichcd/data/immich5.2 编辑docker-compose.yaml文件编辑docker-compose.yaml文件内容如下。同时也可以自定义修改文件中的映射端口等环境变量。---version:2.1services:immich:image:ghcr.io/imagegenius/immich:latestcontainer_name:immichenvironment:-PUID0-PGID0-TZAsia/Shanghai-DB_HOSTNAMEpostgres14-DB_USERNAMEpostgres-DB_PASSWORDpostgres-DB_DATABASE_NAMEimmich-REDIS_HOSTNAMEredis-DISABLE_MACHINE_LEANRNINGfalse-DISABLE_TYPESENSEfalse-DB_PORT5432-REDIS_PORT6379-REDIS_PASSWORD-CUDA_ACCELERATIONfalsevolumes:-/data/immich/config:/config-/data/immich/photos:/photos-/data/immich/machine:/config/machine-learningports:-8080:8080restart:unless-stoppedredis:image:redisports:-6379:6379container_name:redispostgres14:image:postgres:14ports:-8432:5432container_name:postgres14environment:POSTGRES_USER:postgresPOSTGRES_PASSWORD:postgresPOSTGRES_DB:immichvolumes:-/data/immich/db:/var/lib/postgresql/data5.3 创建immich相关容器使用docker-compose.yaml文件创建immich相关容器[rootjeven immich]# docker compose up -d[]Running4/4 ⠿ Network immich_default Created0.0s ⠿ Container immich Started0.7s ⠿ Container redis Started0.7s ⠿ Container postgres14 Started0.7s5.4 检查immich容器状态检查immich容器状态确保容器正常启动。[rootjeven immich]# docker compose psNAME COMMAND SERVICE STATUS PORTS immich/initimmich running0.0.0.0:8080-8080/tcp, :::8080-8080/tcp postgres14docker-entrypoint.s…postgres14 running0.0.0.0:8432-5432/tcp, :::8432-5432/tcp redisdocker-entrypoint.s…redis running0.0.0.0:6379-6379/tcp, :::6379-6379/tcp5.5 检查immich容器日志检查immich容器运行日志确保immich服务正常运行。dockercompose logs六、访问immich服务6.1 注册账号访问地址http://192.168.3.166:8080/将IP更换为自己服务器的IP地址。如果无法访问注意防火墙和安全组设置问题。点击“Getting Started”进入账号注册页面自定义填写即可。6.2 访问immich首页填写设置的登录账号和密码访问immich首页。七、immich的基本使用7.1 上传图片点击上传选项上传本地图片。7.2 浏览图片点击图片管理可以看到刚上传的图片。7.3 创建相册在相册管理页面点击创建相册。输入相册名称选择相册内的相片。7.4 查看相册在相册管理页面可以看到相册列表。7.5 查看统计数据点击administrator进入系统设置页面选择“Server status”,可以看到相关统计信息。八、总结作为一款开源的照片管理系统immich提供了简单的部署和漂亮的界面以及快速的图片加载速度。它还拥有许多强大的功能值得逐一去体验。如果你需要一个照片管理系统不妨尝试一下immich。

相关新闻

Go微服务链路追踪从Jaeger到OpenTelemetry的完整实践

Go微服务链路追踪从Jaeger到OpenTelemetry的完整实践

Go微服务链路追踪Jaeger-OpenTelemetry集成实战 文章导语 在微服务架构中,一个用户请求可能经过10个服务。当出现延迟或错误时,如何快速定位问题?分布式链路追踪就是为此而生。本文基于Jaeger和OpenTelemetry,在Go微服务中实现完整…

2026/8/23 16:53:24 阅读更多 →
前端js2

前端js2

值传递和引用传递值传递是传递变量的值,并不会改变方法外变量的值;引用传递是传递对象的地址,会改变对象本身的值;值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应…

2026/8/23 21:33:16 阅读更多 →
Go微服务网关设计与实现从路由转发到限流熔断

Go微服务网关设计与实现从路由转发到限流熔断

Go微服务网关设计与实现从路由转发到限流熔断 文章导语 API网关是微服务架构的入口,承担着路由转发、认证鉴权、限流熔断、日志监控等职责。本文基于Go构建一个轻量级API网关,覆盖核心功能的实现。 一、反向代理核心 func NewGateway(config GatewayConf…

2026/8/23 16:14:26 阅读更多 →

最新新闻

Godot引擎实战:2D等距视角动作冒险游戏开发全流程解析

Godot引擎实战:2D等距视角动作冒险游戏开发全流程解析

在独立游戏开发领域,2D等距视角因其独特的视觉表现力和适中的技术门槛,正吸引着越来越多的开发者。无论是经典的《塞尔达传说:织梦岛》风格,还是现代像素风冒险游戏,等距视角都能营造出迷人的立体感和探索深度。然而&a…

2026/8/24 3:06:00 阅读更多 →
3 条主线 8 段代码:Mermaid.js 电信网络可视化实战与避坑指南

3 条主线 8 段代码:Mermaid.js 电信网络可视化实战与避坑指南

3 条主线 8 段代码:Mermaid.js 电信网络可视化实战与避坑指南 【免费下载链接】mermaid Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid …

2026/8/24 3:06:00 阅读更多 →
为纯文本大模型添加视觉能力:DeepSeek Harness插件开发实战

为纯文本大模型添加视觉能力:DeepSeek Harness插件开发实战

最近在折腾本地大模型的时候,遇到一个挺有意思的问题:一个纯文本模型,怎么才能让它“看懂”图片?这听起来有点矛盾,但需求却很真实。比如,我手头有一个很擅长代码和逻辑推理的文本模型,但项目里…

2026/8/24 3:06:00 阅读更多 →
IDA Pro函数分析实战:从识别到漏洞挖掘的完整指南

IDA Pro函数分析实战:从识别到漏洞挖掘的完整指南

在逆向工程、漏洞分析和恶意软件研究领域,IDA Pro 无疑是众多安全研究员和分析师手中的“瑞士军刀”。然而,对于许多初学者甚至有一定经验的开发者来说,面对一个加载了复杂二进制文件、满是汇编指令的IDA界面,如何高效地识别、分析…

2026/8/24 3:06:00 阅读更多 →
DeepSeek Harness:为纯文本大模型添加本地视觉能力的开源插件部署指南

DeepSeek Harness:为纯文本大模型添加本地视觉能力的开源插件部署指南

这次我们来看一个能让纯文本大语言模型获得视觉能力的开源项目——DeepSeek Harness。这个项目的核心价值在于,它通过一套巧妙的插件机制,让原本只能处理文本的DeepSeek模型(如DeepSeek-V2、DeepSeek-Coder等)具备了“看图说话”的…

2026/8/24 3:06:00 阅读更多 →
UE C++定时器从蓝图到代码:核心机制与实战避坑指南

UE C++定时器从蓝图到代码:核心机制与实战避坑指南

如果你在虚幻引擎(UE)中已经习惯了用蓝图拖拽节点来实现一个简单的“延迟后执行”或“每隔X秒执行一次”的功能,那么当你第一次尝试在C中实现同样的定时器逻辑时,可能会感到一阵迷茫。蓝图里,一个“Delay”节点或“Set…

2026/8/24 3:05:00 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →