Protecting your data is important when running containerized workloads. By design, Docker containers are ephemeral, meaning any files written directly to a container’s filesystem are lost if the container restarts or is updated.
RunCloud Docker Stacks resolves this through structured Persistent Storage Volumes and decoupled data retention policies, ensuring your databases, user uploads, and configuration files remain permanent and protected.
How Data Persistence Works in Docker Stacks
When deploying containers in RunCloud, persistent data is separated from application code using two primary mechanisms:
1. Named Volumes and Host Mounts
In Docker Stacks, you attach persistent storage volumes directly to your containers:
- Source: A named Docker volume (managed automatically by the host storage driver) or a specific absolute path on the host server filesystem (for example,
/srv/data/uptime-kuma). - Target: The destination directory path inside the container where the application expects its data to live (for example,
/app/data).
When the container writes files, creates database tables, or stores user uploads in the target directory, the data is written directly to the host’s persistent storage volume. When the container updates, restarts, or switches between image tags, the volume reattaches instantly with no data loss.
2. Managed Database Services
If your stack uses relational databases (such as MariaDB) or caching layers (such as Redis), RunCloud provisions these services as managed host instances through the “Managed Services” tab. Database records are stored securely in dedicated database directories on servers, completely isolated from container rebuilds.
Step-by-Step Guide: Configuring Persistent Volumes
Follow these instructions to attach persistent storage to a container during or after deployment:
- Open your stack in RunCloud (Stacks > [Stack Name]).
- Look under the “Containers” menu in the left sub-menu and click on Volumes.
- Click Add Volume.

Configure the volume mapping:
In the “Source” field, enter a unique named volume (for example,
kuma-data) or an absolute host path.In the “Target” field, enter the internal container destination path where the application stores data (for example,
/app/data).
- Click Save Volumes to redeploy the stack.

RunCloud will ensure the storage directory is initialized with appropriate file permissions and mounted into your container.
Volume Preservation and Safe Stack Deletion
One of the most important safety features in RunCloud Docker Stacks is Decoupled Volume Retention.
When you delete a stack from your server:
- RunCloud tears down the running container processes, unbinds the reverse proxy, and removes the private bridge network.
- Named volumes are preserved by default: RunCloud intentionally does not delete your named volumes unless you explicitly choose to do so.
If you have any other questions or need help, please feel free to get in touch with our 24/7 support team. We’re here to help!