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.
-
Right click on
docker_backups.sh
then Properties. -
Click on
Permissions
tab at top. -
Make sure Owner & Group reflect your
username
withRead and Write
access to all. -
Check the
Execute
box to allow executing the file as a program. -
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.