Skip to content

Instantly share code, notes, and snippets.

@BeerOnBeard
Created March 12, 2020 15:44
Show Gist options
  • Save BeerOnBeard/906adc8fb4b440afffb127520c3df3f7 to your computer and use it in GitHub Desktop.
Save BeerOnBeard/906adc8fb4b440afffb127520c3df3f7 to your computer and use it in GitHub Desktop.
MongoDB Docker Backup and Restore Test
#!/bin/bash
set -e;
mongoOne=f06668aa36714d818dfc2105e103f647;
mongoTwo=ea623889303a4e1cb25e7bf2e9b8285c;
function onExit()
{
docker kill $mongoOne;
docker kill $mongoTwo;
docker rm $mongoOne;
docker rm $mongoTwo;
rm backup.gz;
}
trap onExit EXIT;
echo;echo 'Starting MongoDB instances';
docker run \
--name $mongoOne \
--detach \
mongo:4;
docker run \
--name $mongoTwo \
--detach \
mongo:4;
sleep 1; # should be watching the status of the image if this needed to be more robust ¯\_(ツ)_/¯
echo;echo 'Inserting beer into MongoDB instance one';
docker exec $mongoOne bash -c '
mongo <<EOF
use brew-tracker
db.beers.insert({
name: "Sabro",
hops: "All the Sabro"
})
EOF
';
echo;echo 'Performing the backup of MongoDB instance one';
docker exec -i $mongoOne mongodump --archive --gzip --db brew-tracker > backup.gz;
echo;echo 'Restoring the backup to MongoDB instance two';
docker exec -i $mongoTwo mongorestore --archive --gzip < backup.gz;
echo;echo 'Querying for Sabro...';
docker exec $mongoTwo bash -c '
mongo <<EOF
use brew-tracker
db.beers.find()
EOF
';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment