Bird
Raised Fist0
Dockerdevops~20 mins

Backup and restore strategies in Docker - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Docker Backup & Restore Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Backup a Docker volume using a container
What is the output of the following command sequence to backup a Docker volume named mydata into a tar file?
Docker
docker run --rm -v mydata:/data -v $(pwd):/backup alpine tar czf /backup/mydata_backup.tar.gz -C /data .
docker run --rm -v $(pwd):/backup alpine ls /backup
Amydata_backup.tar.gz
Bmydata_backup.tar
Cbackup.tar.gz
Ddata_backup.tar.gz
Attempts:
2 left
💡 Hint
Check the tar file name specified in the command.
🧠 Conceptual
intermediate
2:00remaining
Choosing backup strategy for Docker containers
Which backup strategy is best to ensure data persistence for a database running inside a Docker container?
ABacking up the database data directory using a Docker volume backup
BBacking up the container filesystem using docker commit
CBacking up the container logs using docker logs command
DBacking up the container image using docker save
Attempts:
2 left
💡 Hint
Think about where the database stores its data persistently.
❓ Troubleshoot
advanced
2:00remaining
Restore failure from Docker volume backup
You restored a Docker volume backup using the command docker run --rm -v mydata:/data -v $(pwd):/backup alpine tar xzf /backup/mydata_backup.tar.gz -C /data but the application cannot read the data. What is the most likely cause?
AThe backup file is corrupted and cannot be extracted
BThe volume <code>mydata</code> was not empty before restore causing permission conflicts
CThe tar extraction did not preserve file permissions and ownership
DThe container image alpine does not support tar extraction
Attempts:
2 left
💡 Hint
Consider what happens to file permissions when extracting tar archives inside containers.
🔀 Workflow
advanced
2:00remaining
Automated backup workflow for Docker volumes
Which sequence of commands correctly automates backing up a Docker volume appdata daily to a timestamped file in /backups directory on the host?
Amkdir /backups && docker save appdata > /backups/appdata_$(date +%F).tar.gz
Bdocker volume create appdata_backup && docker run --rm -v appdata_backup:/backup alpine tar czf /backup/appdata_$(date +%F).tar.gz -C /appdata .
Cdocker run --rm -v appdata:/data alpine tar czf /data/appdata_$(date +%F).tar.gz -C /data .
Dmkdir -p /backups && docker run --rm -v appdata:/data -v /backups:/backup alpine sh -c 'tar czf /backup/appdata_$(date +%F).tar.gz -C /data .'
Attempts:
2 left
💡 Hint
Check volume mounting and tar command correctness.
✅ Best Practice
expert
3:00remaining
Best practice for restoring Docker container state with minimal downtime
What is the best practice to restore a Docker container's data volume and minimize downtime in a production environment?
AStop the container, restore the volume backup, then start the container immediately
BCreate a new volume, restore backup there, then update the container to use the new volume and restart
CRestore the backup directly into the running container's volume using docker exec
DDelete the container and volume, recreate both, then restore the backup
Attempts:
2 left
💡 Hint
Consider how to avoid data loss and downtime during restore.

Practice

(1/5)
1. What is the main purpose of backing up Docker volumes?
easy
A. To update Docker to the latest version
B. To speed up container startup time
C. To reduce the size of Docker images
D. To save important data so it can be restored later

Solution

  1. Step 1: Understand backup purpose

    Backing up means saving data safely so it is not lost.
  2. Step 2: Relate to Docker volumes

    Docker volumes store important data outside containers, so backing them up protects that data.
  3. Final Answer:

    To save important data so it can be restored later -> Option D
  4. Quick Check:

    Backup = Save data safely [OK]
Hint: Backup means saving data to prevent loss [OK]
Common Mistakes:
  • Confusing backup with speeding up containers
  • Thinking backup reduces image size
  • Assuming backup updates Docker itself
2. Which of the following commands correctly creates a backup of a Docker volume named mydata using tar?
easy
A. docker save mydata > /backup/mydata.tar
B. docker run --rm -v mydata:/data -v /backup:/backup busybox tar cvf /backup/mydata.tar /data
C. docker volume backup mydata /backup/mydata.tar
D. docker run --rm -v mydata:/data busybox tar xvf /backup/mydata.tar /data

Solution

  1. Step 1: Identify backup command syntax

    Backing up a volume uses tar cvf to create an archive of the volume data.
  2. Step 2: Check each option

    docker run --rm -v mydata:/data -v /backup:/backup busybox tar cvf /backup/mydata.tar /data runs a container mounting the volume and backup directory and uses tar cvf to save data. docker run --rm -v mydata:/data busybox tar xvf /backup/mydata.tar /data extracts instead of creating. docker volume backup mydata /backup/mydata.tar is invalid Docker syntax. docker save mydata > /backup/mydata.tar saves an image, not a volume.
  3. Final Answer:

    docker run --rm -v mydata:/data -v /backup:/backup busybox tar cvf /backup/mydata.tar /data -> Option B
  4. Quick Check:

    Backup = tar cvf inside container [OK]
Hint: Use tar cvf to create backup archive inside container [OK]
Common Mistakes:
  • Using tar xvf which extracts instead of backs up
  • Trying non-existent docker volume backup command
  • Using docker save which backs up images, not volumes
3. What will be the result of running this command?
docker run --rm -v mydata:/data -v /backup:/backup busybox tar xvf /backup/mydata.tar -C /data
medium
A. It restores the volume data from the backup archive
B. It creates a backup archive of the volume data
C. It lists the contents of the backup archive without extracting
D. It deletes the volume data

Solution

  1. Step 1: Understand the tar command

    The tar xvf command extracts files from an archive.
  2. Step 2: Analyze the Docker command

    The command mounts the volume mydata at /data and the backup directory at /backup and extracts the archive /backup/mydata.tar into it using -C /data.
  3. Final Answer:

    It restores the volume data from the backup archive -> Option A
  4. Quick Check:

    tar xvf = extract = restore [OK]
Hint: tar xvf extracts files, so it restores data [OK]
Common Mistakes:
  • Confusing xvf with cvf (backup vs restore)
  • Thinking it lists archive contents
  • Assuming it deletes data
4. You tried to restore a Docker volume backup with this command:
docker run --rm -v mydata:/data busybox tar cvf /backup/mydata.tar /data

But the backup file is empty. What is the likely mistake?
medium
A. Using tar cvf instead of tar xvf to restore
B. Mounting the volume at the wrong path
C. Creating a backup instead of restoring
D. Not specifying the -C option to change directory

Solution

  1. Step 1: Identify the command purpose

    tar cvf creates an archive (backup), not restore.
  2. Step 2: Understand the mistake

    The command tries to create a backup but is used when intending to restore, so the backup file is empty or incorrect.
  3. Final Answer:

    Creating a backup instead of restoring -> Option C
  4. Quick Check:

    tar cvf = backup, not restore [OK]
Hint: tar cvf creates backup; use tar xvf to restore [OK]
Common Mistakes:
  • Confusing backup and restore tar options
  • Mounting volume incorrectly
  • Forgetting to use -C option
5. You want to backup multiple Docker volumes data1 and data2 into separate tar files and then restore them later. Which sequence of commands correctly achieves this?
hard
A. docker run --rm -v data1:/data -v /backup:/backup busybox tar cvf /backup/data1.tar /data
docker run --rm -v data2:/data -v /backup:/backup busybox tar cvf /backup/data2.tar /data
docker run --rm -v data1:/data -v /backup:/backup busybox tar xvf /backup/data1.tar -C /data
docker run --rm -v data2:/data -v /backup:/backup busybox tar xvf /backup/data2.tar -C /data
B. docker volume backup data1 /backup/data1.tar
docker volume backup data2 /backup/data2.tar
docker volume restore data1 /backup/data1.tar
docker volume restore data2 /backup/data2.tar
C. docker save data1 > /backup/data1.tar
docker save data2 > /backup/data2.tar
docker load < /backup/data1.tar
docker load < /backup/data2.tar
D. docker export data1 > /backup/data1.tar
docker export data2 > /backup/data2.tar
docker import /backup/data1.tar
docker import /backup/data2.tar

Solution

  1. Step 1: Backup each volume separately

    Use tar cvf inside a container mounting each volume and the backup directory to create separate tar files.
  2. Step 2: Restore each volume separately

    Use tar xvf with -C option inside a container mounting each volume and the backup directory to extract data back.
  3. Step 3: Verify other options

    Other sequences use invalid Docker commands like docker volume backup, commands meant for images like docker save/load, or for containers like docker export/import.
  4. Final Answer:

    docker run --rm -v data1:/data -v /backup:/backup busybox tar cvf /backup/data1.tar /data<br>docker run --rm -v data2:/data -v /backup:/backup busybox tar cvf /backup/data2.tar /data<br>docker run --rm -v data1:/data -v /backup:/backup busybox tar xvf /backup/data1.tar -C /data<br>docker run --rm -v data2:/data -v /backup:/backup busybox tar xvf /backup/data2.tar -C /data -> Option A
  5. Quick Check:

    Backup and restore volumes with tar inside containers [OK]
Hint: Backup and restore each volume with tar inside containers [OK]
Common Mistakes:
  • Using docker save/load which works for images, not volumes
  • Using non-existent docker volume backup commands
  • Confusing export/import with volume backup
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard