Bird
Raised Fist0
Dockerdevops~20 mins

Creating and managing volumes in Docker - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
πŸŽ–οΈ
Volume Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
πŸ’» Command Output
intermediate
1:30remaining
Volume Creation Command Output
What is the output of the command docker volume create mydata when run on a system with no existing volume named mydata?
Docker
docker volume create mydata
AError: volume mydata already exists
BCreated volume with ID abc123
Cmydata
DNo output
Attempts:
2 left
πŸ’‘ Hint
The command returns the name of the created volume if successful.
❓ Troubleshoot
intermediate
1:30remaining
Volume Removal Error Diagnosis
You run docker volume rm mydata but get the error: Error: volume is in use - [container_id]. What is the most likely cause?
AThe volume is currently attached to a running container.
BThe volume does not exist on the system.
CDocker daemon is not running.
DThe volume is corrupted and cannot be removed.
Attempts:
2 left
πŸ’‘ Hint
Volumes cannot be removed if they are used by containers.
❓ Configuration
advanced
2:00remaining
Docker Compose Volume Configuration
In a docker-compose.yml file, which volume configuration correctly mounts a named volume dbdata to /var/lib/mysql inside the container?
Docker
version: '3.8'
services:
  db:
    image: mysql
    volumes:
A- dbdata:/var/lib/mysql
B- /var/lib/mysql:dbdata
C
- type: bind
  source: dbdata
  target: /var/lib/mysql
D
- type: volume
  source: dbdata
  target: /var/lib/mysql
Attempts:
2 left
πŸ’‘ Hint
Use the long syntax for named volumes with type volume.
πŸ”€ Workflow
advanced
2:30remaining
Volume Backup and Restore Workflow
Which sequence of commands correctly backs up a Docker volume named mydata to a tar file and then restores it?
Adocker volume export mydata > mydata.tar.gz && docker volume import mydata.tar.gz mydata
Bdocker run --rm -v mydata:/data -v $(pwd):/backup busybox tar czf /backup/mydata.tar.gz /data && docker run --rm -v mydata:/data -v $(pwd):/backup busybox tar xzf /backup/mydata.tar.gz -C /data
Cdocker cp mydata:/ /backup/mydata.tar.gz && docker cp /backup/mydata.tar.gz mydata:/
Ddocker save mydata > mydata.tar.gz && docker load mydata.tar.gz
Attempts:
2 left
πŸ’‘ Hint
Use a temporary container to access volume data for backup and restore.
βœ… Best Practice
expert
2:00remaining
Choosing Volume Types for Persistent Data
Which statement best describes when to use Docker named volumes instead of bind mounts for persistent data?
AUse named volumes when you want Docker to manage the storage location and lifecycle of data independently from the host filesystem.
BUse named volumes only when you need to share data between containers on different hosts.
CUse bind mounts when you want Docker to manage data storage automatically without host interference.
DUse bind mounts to store data inside Docker’s internal volume storage area.
Attempts:
2 left
πŸ’‘ Hint
Think about who controls the data location and lifecycle.

Practice

(1/5)
1. What is the main purpose of Docker volumes?
easy
A. To manage network connections between containers
B. To speed up container startup time
C. To create new containers automatically
D. To store data outside of containers so it is not lost when containers stop

Solution

  1. Step 1: Understand what volumes do

    Volumes store data outside the container's writable layer, so data persists even if the container is removed.
  2. Step 2: Compare options

    Only To store data outside of containers so it is not lost when containers stop describes this purpose correctly. Other options describe unrelated features.
  3. Final Answer:

    To store data outside of containers so it is not lost when containers stop -> Option D
  4. Quick Check:

    Volumes keep data safe outside containers = A [OK]
Hint: Volumes keep data safe outside containers [OK]
Common Mistakes:
  • Confusing volumes with container networking
  • Thinking volumes speed up container start
  • Assuming volumes create containers
2. Which command correctly creates a Docker volume named mydata?
easy
A. docker volume new mydata
B. docker volume create mydata
C. docker create volume mydata
D. docker volume add mydata

Solution

  1. Step 1: Recall Docker volume creation syntax

    The correct command to create a volume is docker volume create [name].
  2. Step 2: Match options to syntax

    Only docker volume create mydata matches the correct syntax exactly.
  3. Final Answer:

    docker volume create mydata -> Option B
  4. Quick Check:

    Use 'docker volume create' = C [OK]
Hint: Use 'docker volume create' to make volumes [OK]
Common Mistakes:
  • Using wrong command order like 'docker create volume'
  • Using non-existent commands like 'docker volume new'
  • Confusing 'add' with 'create'
3. What is the output of the command docker volume ls after creating two volumes named vol1 and vol2?
medium
A. Lists volumes including vol1 and vol2
B. Lists all containers running
C. Shows detailed info about vol1 only
D. Deletes volumes vol1 and vol2

Solution

  1. Step 1: Understand what 'docker volume ls' does

    This command lists all Docker volumes available on the system.
  2. Step 2: Interpret the scenario

    After creating volumes vol1 and vol2, the command will list both volumes among others.
  3. Final Answer:

    Lists volumes including vol1 and vol2 -> Option A
  4. Quick Check:

    'docker volume ls' lists volumes = A [OK]
Hint: 'docker volume ls' shows all volumes [OK]
Common Mistakes:
  • Confusing volume list with container list
  • Expecting detailed info instead of list
  • Thinking it deletes volumes
4. You run docker volume rm myvolume but get an error saying the volume is in use. What should you do to fix this?
medium
A. Restart Docker daemon and try removing again
B. Rename the volume before removing it
C. Stop and remove containers using the volume, then remove the volume
D. Use docker volume create again to overwrite it

Solution

  1. Step 1: Understand volume usage error

    Docker prevents removing volumes that are still attached to running or stopped containers.
  2. Step 2: Fix by stopping/removing containers

    You must stop and remove containers using the volume before deleting the volume itself.
  3. Final Answer:

    Stop and remove containers using the volume, then remove the volume -> Option C
  4. Quick Check:

    Remove containers before volumes in use = D [OK]
Hint: Remove containers using volume before deleting volume [OK]
Common Mistakes:
  • Trying to rename volume to delete it
  • Recreating volume instead of removing
  • Restarting Docker daemon without stopping containers
5. You want to create a Docker container that uses a volume named appdata to persist data at /data inside the container. Which command correctly does this?
hard
A. docker run --mount source=appdata,target=/data myimage
B. docker run -v /appdata:/data myimage
C. docker run -v /data appdata myimage
D. docker run --volume /data:appdata myimage

Solution

  1. Step 1: Understand volume mounting syntax

    The recommended syntax for mounting a named volume is docker run --mount source=volume_name,target=container_path image. The shorthand -v volume_name:container_path also works, but paths starting with / indicate bind mounts from the host.
  2. Step 2: Compare options

    docker run -v /appdata:/data myimage performs a bind mount from the host directory /appdata, not the named volume appdata. docker run --mount source=appdata,target=/data myimage correctly mounts the named volume appdata. The other options (-v /data appdata and --volume /data:appdata) have invalid syntax or incorrect source/target order.
  3. Final Answer:

    docker run --mount source=appdata,target=/data myimage -> Option A
  4. Quick Check:

    Use --mount source=appdata,target=/data = B [OK]
Hint: Use --mount source=vol,target=path for clarity [OK]
Common Mistakes:
  • Mixing volume and container paths order
  • Using incorrect flags like --volume with wrong syntax
  • Confusing shorthand and long form options
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