【Docker项目实战】Docker环境下部署immich照片管理系统

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 【2月更文挑战第19天】Docker环境下部署immich照片管理系统

一、immich介绍

1.1 immich简介

直接从您的手机自托管照片和视频备份解决方案。

1.2 immich注意事项

该项目正在非常积极的开发中。
⚠️预计会出现错误和重大更改。
⚠️ 请勿将该应用程序用作存储照片和视频的唯一方式。
⚠️始终遵循 3-2-1 备份计划,为您珍贵的照片和视频!

1.3 immich使用场景

  • 个人照片管理:immich提供了一个简单而直观的界面,让个人用户能够方便地管理自己的照片集合。用户可以通过标签、日期和描述等元数据对照片进行分类和搜索,同时可以进行批量处理和编辑操作。

  • 团队协作:immich支持多用户使用,可以作为团队内部的照片管理工具。团队成员可以共享照片集合,并进行评论和讨论。通过权限管理,可以精确控制不同用户对照片的访问和编辑权限。

  • 专业摄影师:对于摄影师来说,照片管理是不可或缺的一环。immich提供了针对摄影师的一些特殊功能,如支持原始RAW文件的管理和预览、批量导出和水印处理等。摄影师可以方便地对照片进行整理、筛选和处理,从而节省时间和提高工作效率。

  • 图片库管理:immich的强大搜索和分类功能使其成为一个理想的图片库管理工具。无论是个人图片库、企业图片库还是公共图片库,都可以通过immich来进行统一管理和检索。用户可以根据需要自定义标签和分类方式,从而更方便地找到所需的图片。

二、本地环境介绍

2.1 本地环境规划

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

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

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.该项目提示更新频繁,请谨慎部署生产环境;
3.在Docker环境下部署immich照片管理系统。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# 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 Mon 2023-12-11 16:37:11 CST; 5h 58min ago
     Docs: https://docs.docker.com
 Main PID: 11899 (dockerd)
    Tasks: 53
   Memory: 187.3M
   CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本,当前版本为20.10.17。

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载immich镜像

从谷歌仓库和docker hub仓库拉取immich相关镜像,版本为最新的latest版本。

docker pull  ghcr.io/imagegenius/immich:latest
docker pull redis
docker pull  postgres:14

五、部署immich照片管理系统

5.1 创建目录

创建主机挂载目录

mkdir -p /data/immich && cd /data/immich

5.2 编辑docker-compose.yaml文件

编辑docker-compose.yaml文件,内容如下。同时,也可以自定义修改文件中的映射端口等环境变量。

---
version: "2.1"
services:
  immich:
    image: ghcr.io/imagegenius/immich:latest
    container_name: immich
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
      - DB_HOSTNAME=postgres14
      - DB_USERNAME=postgres
      - DB_PASSWORD=postgres
      - DB_DATABASE_NAME=immich
      - REDIS_HOSTNAME=redis
      - DISABLE_MACHINE_LEANRNING=false
      - DISABLE_TYPESENSE=false
      - DB_PORT=5432
      - REDIS_PORT=6379
      - REDIS_PASSWORD=
      - CUDA_ACCELERATION=false
    volumes:
      - /data/immich/config:/config
      - /data/immich/photos:/photos
      - /data/immich/machine:/config/machine-learning
    ports:
      - 8080:8080
    restart: unless-stopped
  redis:
    image: redis
    ports:
      - 6379:6379
    container_name: redis
  postgres14:
    image: postgres:14
    ports:
      - 8432:5432
    container_name: postgres14
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: immich
    volumes:
      - /data/immich/db:/var/lib/postgresql/data

5.3 创建immich相关容器

  • 使用docker-compose.yaml文件创建immich相关容器
[root@jeven immich]# docker compose up -d
[+] Running 4/4
 ⠿ Network immich_default  Created                                                                                      0.0s
 ⠿ Container immich        Started                                                                                      0.7s
 ⠿ Container redis         Started                                                                                      0.7s
 ⠿ Container postgres14    Started                                                                                      0.7s

5.4 检查immich容器状态

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

[root@jeven immich]# docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
immich              "/init"                  immich              running             0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
postgres14          "docker-entrypoint.s…"   postgres14          running             0.0.0.0:8432->5432/tcp, :::8432->5432/tcp
redis               "docker-entrypoint.s…"   redis               running             0.0.0.0:6379->6379/tcp, :::6379->6379/tcp

5.5 检查immich容器日志

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

docker compose 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。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
|
1月前
|
算法 Shell 定位技术
在Docker环境下搭建openvslam/orb_slam3的步骤和问题总结
总的来说,搭建openvslam或orb_slam3的过程需要一些耐心和技术知识,但只要你遵循上述步骤,并且在遇到问题时进行适当的调试,你应该能够成功搭建并运行openvslam或orb_slam3。
81 11
|
2月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
156 28
|
2月前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
168 23
|
2月前
|
存储 SQL 关系型数据库
docker部署n9e开源版本7.4.0
n9e开源版本7.4.0
147 0
|
10月前
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
运维 Kubernetes 前端开发
【云原生】阿里云服务器部署 Docker Swarm集群
阿里云服务器 一键部署 Docker Swarm 集群!
816 0
【云原生】阿里云服务器部署 Docker Swarm集群
|
弹性计算 数据可视化 关系型数据库
使用阿里云部署基于docker的mysql云服务
本篇文章将介绍如何使用阿里云安装docker、部署mysql服务,并远程连接至远端mysql
797 1
使用阿里云部署基于docker的mysql云服务
|
弹性计算 Docker 容器
阿里云一键部署 Docker Datacenter
使用ROS模板在阿里云上一键部署Docker Datacenter
7937 0