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

本文涉及的产品
云数据库 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
相关文章
|
22小时前
|
数据库 Nacos Docker
基于docker-compose部署微服务基本环境
基于docker-compose部署微服务基本环境
4 0
|
2天前
|
运维 Linux 虚拟化
Docker详解(三)——Docker安装与部署
Docker详解(三)——Docker安装与部署
32 4
|
3天前
|
测试技术 Linux Docker
【好玩的经典游戏】Docker部署FC-web游戏模拟器
【好玩的经典游戏】Docker部署FC-web游戏模拟器
28 1
|
4天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
35 1
|
7天前
|
存储 测试技术 文件存储
【Docker项目实战】使用Docker部署Sun-Panel导航面板
【4月更文挑战第19天】使用Docker部署Sun-Panel导航面板
59 7
|
10天前
|
测试技术 Linux 网络安全
【好玩的开源项目】使用Docker部署SyncTV视频同步和共享平台
【4月更文挑战第16天】使用Docker部署SyncTV视频同步和共享平台
49 1
|
14天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署Seatsurfing预订座位系统
【4月更文挑战第12天】使用Docker部署Seatsurfing预订座位系统
38 3
|
弹性计算 应用服务中间件 Linux
Day2 基于ECS快速搭建Docker环境
简介: 容器技术 容器是一个允许我们在资源隔离的过程中,运行应用程序和其依赖项的 、轻量的 、操作系统级别的虚拟化技术, 运行应用程序所需的所有必要组件都打包为单个镜像,这个镜像是可以重复使用的。当镜像运行时,它是运行在独立的环境中,并不会和其他的应用共享主机操作系统的内存、CPU或磁盘。这保证了容器内的进程不会影响到容器外的任何进程。 Docker:类似于虚拟机 但是比虚拟机运行小切简单 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不
333 0
|
弹性计算 应用服务中间件 Linux
基于ECS快速搭建Docker环境
本教程介绍如何快速搭建Docker环境,并使用Docker部署一个Nginx服务。
基于ECS快速搭建Docker环境
|
弹性计算 应用服务中间件 nginx