Docker
Immich is distributed as a set of container images and is run with Docker and the Docker Compose plugin. This page describes what Immich requires from Docker.
Docker Engine vs Docker Desktop
Docker is available in two variants, and either satisfies Immich's requirement as long as the Compose plugin is present.
| Variant | Description | Recommended for |
|---|---|---|
| Docker Engine | The CLI variant, designed for servers | Linux (including Windows via WSL2). This is the recommended setup. |
| Docker Desktop | The GUI variant | Windows or macOS. Not recommended on Linux. |
Docker Compose
Immich's deployment is defined as a Compose file, so the Compose plugin is required. It is installed by both Docker Engine and Docker Desktop when following their official installation guides, and can also be installed separately.
Immich requires the docker compose command. The similarly named docker-compose is deprecated and is no longer supported by Immich.
Containers
A default deployment runs the following containers:
| Container | Purpose |
|---|---|
immich_server | The API and web app, and the background workers |
immich_machine_learning | Smart search, face detection, and OCR models |
immich_postgres | The database, including the vector extension used for search |
immich_redis | The job queue (a Valkey image, despite the name) |
Container environments
Docker in LXC containers is not recommended, but may be possible for advanced users. Immich runs well in a full virtual machine. See Requirements for the supported combinations.
Related pages
- Install with Docker Compose — the recommended installation method
- Inspect containers and logs — day-to-day
dockercommands - Environment Variables — what can be configured through the Compose environment
- Storage locations — what the mounted volumes hold