Docker and containers
Coolify uses Docker to run applications, databases, and services on the servers you connect. Coolify coordinates the work; Docker provides the images, containers, storage, and networks that make each resource run.
You do not need to manage Docker by hand for a first deployment. Understanding these Docker concepts helps you choose storage, follow deployment logs, and diagnose why a resource cannot start or connect.
Core Docker concepts
Docker images, containers, storage, and networks follow standard Docker behavior. Docker Compose describes how containers, storage, and networks work together. Coolify translates your resource settings into Docker operations on the connected server.
Images and containers
An image is the reusable package Docker uses to create a container. The image contains the application and the files it needs, but it is not a running application by itself.
Based on your Coolify resource settings, Docker can build an application image from source code, pull a prebuilt image from a container registry, or start the images defined in a Docker Compose file.
During a redeployment, Coolify may replace a container to apply a new image or configuration. The image remains reusable, while the new container receives the current resource settings.
Read Docker’s guides to images and containers for more detail.
Persistent data
A container’s writable filesystem is not a safe location for data that must survive a redeployment. If Docker deletes and replaces the container, changes stored only in that filesystem disappear with it.
Coolify persistent storage can use a named Docker volume or a bind mount from the server filesystem. Both types attach storage from outside the container to a path inside it.
Read Persistent Storage to configure volume, bind, directory, and file mounts in Coolify. Docker’s storage guide explains the underlying model.
Networks and Docker Compose
Networks and Compose describe how containers fit together. Networks provide the connections; Compose records the desired multi-container configuration.
Networks
Docker networks let containers communicate without exposing every service directly to the internet. Containers on the same network can reach the services they need. Containers on different, unconnected networks cannot communicate through those networks.
Coolify creates or uses the networks required by each resource and connects the server proxy when HTTP routing is required. The proxy receives public traffic, then forwards it to the correct container over a Docker network.
Read Networking in Coolify for domains, proxy modes, public ports, and internal service connections. Docker’s networking guide covers the underlying network drivers and behavior.
Docker Compose
A Docker Compose file describes one or more services and their images, environment variables, ports, storage mounts, networks, health checks, and dependencies.
Coolify generates the Compose configuration needed for resources such as applications and databases. For a Docker Compose application or a one-click service, Coolify uses the Compose definition you provide or select. You do not need to write a Compose file for every resource.
Compose defines the desired runtime configuration; it does not make container-local data persistent. Storage still needs a volume, bind mount, or external data service.
Read Docker’s Compose application model for the relationship between services, networks, and volumes.
From configuration to running containers
Inspect Docker resources
You can inspect Docker state without changing it. Connect over SSH to the server that runs the resource, then use the standard Docker listing commands:
docker ps
docker image ls
docker volume ls
docker network lsThese commands show resources on the current server only. If one Coolify instance manages several connected servers, run them on the server assigned to the resource you are checking.
Check the self-hosted Coolify containers
Coolify itself also runs in containers when you self-host it. Run this command on the machine that hosts your Coolify instance:
docker ps --filter "name=coolify" \
--format "table {{.Names}}\t{{.Image}}\t{{.RunningFor}}"Coolify Cloud users do not have access to the managed control plane host. You can inspect the workload servers connected to your Cloud account instead.
Why standard Docker matters
Docker keeps the workload layer familiar and portable. You can use normal Docker concepts and inspection tools on the servers you control, and running resources remain standard Docker containers.
If the Coolify control plane becomes unavailable, containers that are already running remain on their connected servers. Dashboard controls and deployment automation are unavailable until the Coolify instance returns.
Read How Coolify works for the relationship between the control plane, connected servers, Docker, and proxy traffic.
Go deeper
Continue with the part of the Docker model that affects your next deployment.
Build and deployment model
See how Coolify turns source code or an existing image into a running application.
Networking in Coolify
Follow public traffic through the server proxy and private Docker networks.
Persistent Storage
Choose and configure a volume, bind, directory, or file mount for data that must survive container replacement.
