2023-12-05 13:23:21 -08:00

2.5 KiB

Docker Backups

A bash script that will stop all running containers. Create a .tar.gz files of those stopped containers then upload them to a specified save location.
After the containers are successfully saved, it will proceed to restart them.
The script will log each step of the process including the time it takes for the script to execute.

Prerequisites

You will need to change [USERNAME] to the one you use on your server. You will find this in (3) parts of the script.

Folder Structure

If you have not done so already, create a new folder called scripts in your ~home folder. This is where all your scripts will go.

Inside your scripts folder create a new folder called backups

When done your folders structure should look like this: /home/[username]/scripts/backups

Script

Get the source code from this repo and save it as docker_backups.sh in the backups folder created in the previous step.

Next we need to change the permissions of this file so that the server can read it.

  1. Right click on docker_backups.sh then Properties.

  2. Click on Permissions tab at top.

  3. Make sure Owner & Group reflect your username with Read and Write access to all.

  4. Check the Execute box to allow executing the file as a program.

  5. Close out the window.

Run

Now we need to test and run the script.

  • Make sure your terminal is open to the location of the docker_backups.sh file. Should be ~/scripts/backups

  • Run the script:

    bash docker_backups.sh
    

The script should be running and should be printing to the terminal what step its on. This process will take a few minutes or so depending on how many running containers you have.

Automation

The script has to be automated so that you will have current backups incase you need them. This can be automated using Linux Mint's built in Crontab system to create a cron job. Crontab is managed with the terminal and does not have a GUI.

I have not found a good GUI option for crontab as of yet however, I have found and use an application called Cronicle. Cronicle is task scheduler that functions like Crontab but only with a GUI.