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

简介: 【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。

相关文章
|
7月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
3159 4
|
7月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
343 5
|
Ubuntu Shell 应用服务中间件
Docker -- 系统整洁之道 -- 1
在上文Docker – 系统整洁之道 – 0中已经对Docker是什么,安装Docker以及怎么运行一个简单的容器有了初步了解,这篇文章介绍Docker的一些命令和Docker镜像的使用及操作。
1660 0
|
Ubuntu Linux Docker
Docker -- 系统整洁之道 -- 0
在我的小 rmbp 256G的硬盘里,实在是装不下100多个G的虚拟机了,所以想把一些东西迁移到这两年很火的Docker下,Docker以前也有过一两次,只是按着别人给的用法用的,具体的一些细节并没有深入,和git一样,这么牛掰的东西怎么能不好好学一些呢? Docker和虚拟机的区别 Docker是一种容器,虚拟机是一种管理程序虚拟机化(hypervisor virtualization,HV)。
1767 0
|
8月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
721 115
|
8月前
|
缓存 前端开发 Docker
Docker Layer Caching:加速你的容器构建
Docker Layer Caching:加速你的容器构建

热门文章

最新文章