如何使用 Docker Compose 部署 Immich
Immich 是一個開源的自建照片和視頻備份解決方案,通過 Docker 部署可以快速構建一個穩定的自主管理系統。本文將帶你一步步完成使用 Docker Compose 部署 Immich 的過程,幫助你在生產環境中實現高效的媒體管理。
1. 環境準備
在開始部署之前,請確保你已經安裝并配置了以下軟件:
-
Docker Engine
請參考官方文檔安裝 Docker Engine,并確保 Docker 守護進程正在運行。 -
Docker Compose
Docker Compose 是一個用來管理多容器應用的工具,建議使用最新版。
可通過命令docker compose version
檢查是否已安裝。如未安裝,請參考 Docker 官方文檔進行安裝。 -
服務器或虛擬機環境
部署 Immich 建議使用 Linux 系統環境,保證磁盤空間足夠存儲備份數據。
如果你在 Windows 或 macOS 上進行測試,也可以通過 Docker Desktop 進行部署。
2. 準備部署文件
2.1 創建部署目錄
首先在你的服務器或主機上創建一個用于存放部署文件的目錄,例如:
mkdir -p ~/immich-app
cd ~/immich-app
該目錄將用來保存 docker-compose.yml
配置文件和環境變量文件 .env
。
2.2 下載配置文件
建議從 Immich 的 GitHub Releases 頁面下載最新的部署配置文件。你可以通過以下命令下載:
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
如果你喜歡,也可以直接在瀏覽器中下載這兩個文件,然后將其放入剛創建的目錄中(注意將下載后的 example.env
重命名為 .env
)。
3. 配置環境變量
打開 .env
文件,你會看到如下示例配置內容:
# Immich 環境變量示例
# 可以在 https://immich.app/docs/install/environment-variables 中查看所有支持的變量# 上傳文件存儲路徑,建議設置為一個專用目錄
UPLOAD_LOCATION=./library# 數據庫文件存儲路徑,注意網絡共享目錄不支持用于數據庫
DB_DATA_LOCATION=./postgres# 設置時區,這里示例中將時區設置為上海
TZ=Asia/Shanghai# 指定要使用的 Immich 版本
IMMICH_VERSION=release# 數據庫密碼,建議修改為隨機密碼,且僅包含 A-Za-z0-9 字符
DB_PASSWORD=postgres# 數據庫基本配置,通常無需修改
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
根據你的實際情況,可以對以下內容做出調整:
- UPLOAD_LOCATION
指定一個有足夠存儲空間的目錄,用于存放上傳的照片和視頻。 - DB_DATA_LOCATION
用于存儲 PostgreSQL 數據庫數據,同樣建議設置為專用目錄。 - TZ
設置你所在的時區。 - IMMICH_VERSION
默認為 release 版本,如果你想指定具體版本號,也可以將該值修改為類似v1.71.0
的格式。 - DB_PASSWORD
請修改為你自己的安全密碼,數據庫默認只在容器網絡內部使用。
4. 啟動 Immich 應用
在完成 .env
文件配置后,就可以啟動 Immich 的 Docker Compose 服務了。在 ~/immich-app
目錄下執行以下命令:
docker compose up -d
該命令會進行以下操作:
- 拉取最新的 Immich 鏡像(包括相應的后端服務和數據庫鏡像)。
- 根據
docker-compose.yml
文件定義啟動多個容器,其中包括:- Immich 服務器容器
- PostgreSQL 數據庫容器
- 其他輔助服務容器(如反向代理,視具體配置而定)
使用 -d
參數后,容器將以后臺模式運行,你可以通過 docker compose ps
查看當前運行的容器狀態。
5. 驗證部署和后續配置
5.1 驗證服務狀態
- 訪問服務器的 IP 地址或域名,默認情況下 Immich 應用會監聽 80 端口。如果你在部署過程中修改了端口,請使用對應端口訪問。
- 檢查日志:
可以通過命令docker compose logs -f
實時查看容器啟動和運行日志,確認各項服務是否正常工作。
5.2 根據業務需要進行調整
-
數據備份與存儲:
確保UPLOAD_LOCATION
和DB_DATA_LOCATION
指向的路徑有足夠的磁盤空間,并且在生產環境中可以通過掛載持久化卷來保障數據不丟失。 -
安全配置:
根據實際生產環境注意網絡安全,建議為 Docker 服務和數據庫容器設置合適的防火墻規則,不直接暴露數據庫端口。同時,建議使用 HTTPS 對外提供服務,可通過反向代理(例如 Nginx)實現 TLS 加密。 -
升級與維護:
當 Immich 發布新版本時,只需更新IMMICH_VERSION
變量并重新拉取鏡像,然后重啟服務即可完成升級。
6. 常見問題排查
-
如果容器啟動失敗
請檢查.env
文件中環境變量的配置是否正確,尤其是路徑配置、時區和數據庫密碼設置。 -
如果服務無法訪問
請確認 Docker 主機防火墻或安全組規則是否允許訪問相應端口;另外,也可以檢查docker compose logs
中是否有錯誤信息。 -
資源不足問題
如果發現容器運行時磁盤空間不足或內存占用高,請檢查宿主機資源,并考慮擴展存儲或為容器設置資源限制。
7. 總結
通過 Docker Compose 部署 Immich 能夠快速搭建一個高效、易于管理的自建照片與視頻備份系統。整個部署過程主要包括以下步驟:
- 準備部署目錄及環境文件(docker-compose.yml 和 .env)。
- 修改環境變量文件,調整存儲路徑、時區、版本及數據庫密碼等配置。
- 執行
docker compose up -d
命令啟動容器服務。 - 根據日志和訪問狀態驗證部署是否成功,再根據實際需求進行安全、資源等方面的優化。
希望這篇指南能幫助你輕松部署 Immich,實現私有云相冊系統的快速上線。如有任何疑問或遇到問題,歡迎在評論區交流討論或參考 Immich 官方文檔 了解更多詳細信息。
Happy deploying!