Как запустить докер-контейнер Immich на другой машине, при этом не переносив данные, а смонтировав общий том с первой машины?

Добрый день! Я занимаюсь настройкой личного хранилища для фотографий. У меня есть машина на базе J1800 с двумя дисками по 1 ТБ: на одном хранятся фотографии, на другом — торренты с ОС. Я установил Ubuntu 24.04 и загрузил туда 300 ГБ фотографий. Однако заметил, что создание миниатюр и AI-поиска занимает слишком много времени, поэтому решил воспроизвести такую же систему на основной машине с процессором 2x2680v4 и запустить контейнер, чтобы ускорить обработку.

Я установил Docker и перемонтировал диск в такое же расположение, но при запуске контейнера Immich программа предлагает создать новый аккаунт. У меня вопрос: где хранятся конфигурационные файлы? Как сделать так, чтобы Immich в контейнере работал на другой машине? Я хотел бы передать обработку старшему брату, а затем использовать полученные результаты на небольшой машине.
  • 7 апреля 2025 г. 13:25
Ответы на вопрос 2
Запуск Docker-контейнера Immich на другой машине с использованием общего тома можно осуществить, следуя нескольким шагам. Immich хранит данные и конфигурацию в определенном месте внутри контейнера, и для правильной работы на другой машине вам нужно будет убедиться, что данные доступны и правильно смонтированы. Вот шаги, которые вам нужно выполнить:

1. **Настройка общего тома**:
   Убедитесь, что диск с фотографиями смонтирован на обеих машинах в одно и то же место. Например, если на одной машине фотографии находятся в `/mnt/photos`, то на второй машине они также должны находиться в `/mnt/photos`.

2. **Проверка конфигурации**:
   Immich использует базу данных для хранения информации о пользователях, миниатюрах и других данных. Наиболее вероятно, что данные хранятся в форматах PostgreSQL или SQLite, в зависимости от вашей конфигурации. Вам необходимо будет перенести также конфигурационные файлы и базу данных на новую машину, если они находятся в контейнере (внутри контейнера это часто `/app/data` или подобное).

3. **Создание общего тома в Docker**:
   Когда вы запускаете контейнер, убедитесь, что вы правильно монтируете оба необходимые директории. Пример команды, которая может вам понадобиться:

   ```bash
   docker run -d \
     --name immich \
     -v /mnt/photos:/app/data/photos \
     -v /mnt/immich-db:/app/data/db \
     -e DATABASE_URL=postgres://user:password@hostname:port/dbname \
     -p 8080:8080 \
     immich:latest
   ```

   Замените `/mnt/immich-db` на директорию, где будут размещены файлы базы данных, если вы решите использовать внешнюю базу данных.

4. **Перенос базы данных**:
   Если вы используете базу данных, и она уже содержит информацию о пользователях и настройках, вы можете создать дамп базы данных на первой машине и восстановить его на второй:

   - Для PostgreSQL:
     ```bash
     pg_dump -U username -d dbname > dump.sql
     psql -U username -d dbname < dump.sql
     ```
   - Для SQLite просто скопируйте файл базы данных на новый сервер.

5. **Запуск контейнера**:
   Запустите контейнер на новой машине, как указано в пункте 3. Убедитесь, что все необходимые порты и окружение настроены правильно.

6. **Настройка**:
   Проверьте, что все необходимые файлы и базы данных правильно смонтированы и доступны контейнеру. При первом запуске процессе, Immich должен обнаружить данные и не подсказывать вновь создать аккаунт, если все правильно.

После выполнения этих шагов, вы должны быть в состоянии запустить Immich на другой машине с общим доступом к фотографиям и конфигурационным файлам. Не забудьте также проверить права на доступ к файлам на обеих машинах, чтобы контейнер мог к ним обращаться.
/var/lib/docker - по идее там volumes 
если обратного не указано в docker-compose файла
Похожие вопросы