---
title: "Backing Up and Restoring Docker Volumes"
slug: "backing-up-volumes"
updated: 2025-01-26T19:40:13Z
published: 2025-01-26T19:40:13Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ai-op.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Backing Up and Restoring Docker Volumes

This guide explains how to back up and restore Docker volumes on Linux. This guide assumes you are using the [Koios service script detailed here](/v1/docs/setting-up-the-koios-service).

> [!NOTE]
> Linux
> 
> This guide will only work on a Linux host. If you are running Koios on Windows or MacOS, make sure to backup these folders using your OS specific file locations and commands, or use Docker’s guide: [https://docs.docker.com/engine/storage/volumes/#back-up-restore-or-migrate-data-volumes](https://docs.docker.com/engine/storage/volumes/#back-up-restore-or-migrate-data-volumes).

#### Volumes to Back Up

The Koios container uses the following volumes:

1. **koios_data_postgres**: `/var/lib/postgresql/16/main`
2. **koios_data_influxdb**: `/root/.influxdbv2`
3. **koios_media**: `/var/www/koios/media`
4. **koios_logs**: `/var/www/koios/logs`
5. **koios_certs**: `/var/www/koios/certs`
6. **koios_license**: `/var/www/koios/license`

#### Prerequisites

- Ensure you have `docker` installed and running.
- Have sufficient disk space for the backup files.
- Use a directory on the host system (e.g., `/backups`) to store the backups.

#### Backing Up Volumes

To back up the volumes, we'll create a tarball for each volume's contents.

1. **Create a Backup Directory**

```shell
mkdir -p /backups/docker_volumes
```

2. **Back Up Each Volume**

Use the following command to back up each volume to a tarball:

```shell
sudo tar -czf /backups/docker_volumes/koios_data_postgres.tar.gz -C /var/lib/docker/volumes/koios_data_postgres/_data .
sudo tar -czf /backups/docker_volumes/koios_data_influxdb.tar.gz -C /var/lib/docker/volumes/koios_data_influxdb/_data .
sudo tar -czf /backups/docker_volumes/koios_media.tar.gz -C /var/lib/docker/volumes/koios_media/_data .
sudo tar -czf /backups/docker_volumes/koios_logs.tar.gz -C /var/lib/docker/volumes/koios_logs/_data .
sudo tar -czf /backups/docker_volumes/koios_certs.tar.gz -C /var/lib/docker/volumes/koios_certs/_data .
sudo tar -czf /backups/docker_volumes/koios_license.tar.gz -C /var/lib/docker/volumes/koios_license/_data .
```

3. **Verify Backups**

List the backup files to ensure they were created successfully:

```shell
ls -lh /backups/docker_volumes
```

#### Restoring Volumes

To restore the volumes, we'll extract the tarball contents back into the corresponding Docker volumes.

1. **Restore Each Volume**

Use the following command to restore each volume:

```shell
sudo tar -xzf /backups/docker_volumes/koios_data_postgres.tar.gz -C /var/lib/docker/volumes/koios_data_postgres/_data
sudo tar -xzf /backups/docker_volumes/koios_data_influxdb.tar.gz -C /var/lib/docker/volumes/koios_data_influxdb/_data
sudo tar -xzf /backups/docker_volumes/koios_media.tar.gz -C /var/lib/docker/volumes/koios_media/_data
sudo tar -xzf /backups/docker_volumes/koios_logs.tar.gz -C /var/lib/docker/volumes/koios_logs/_data
sudo tar -xzf /backups/docker_volumes/koios_certs.tar.gz -C /var/lib/docker/volumes/koios_certs/_data
sudo tar -xzf /backups/docker_volumes/koios_license.tar.gz -C /var/lib/docker/volumes/koios_license/_data
```

2. **Verify Restored Data**

You can verify the data restoration by starting the container and checking to see if your data looks correct:

```shell
sudo service docker.koios start
```

#### Tips

- **Automate Backups**: Create a script to automate the backup process for all volumes.
- **Backup Location**: Store backups in a safe location, such as an external drive or cloud storage.
- **Schedule Backups**: Use `cron` or another task scheduler to back up volumes periodically.
- **Test Restorations**: Regularly test restoring volumes to ensure backups are functional.

*By following this guide, you can reliably back up and restore your Docker volumes to maintain application data integrity.*
