A Docker volume is a storage area managed by Docker that containers can use to save and share data persistently outside the container's writable layer.
Click to reveal answer
beginner
How do you share data between two Docker containers using volumes?
You create a Docker volume and mount it into both containers at the desired path. This way, both containers can read and write to the same data location.
Click to reveal answer
beginner
What is the command to create a Docker volume named 'shared-data'?
docker volume create shared-data
Click to reveal answer
intermediate
How do you run two containers sharing the same volume 'shared-data' at path '/app/data'?
docker run -d --name container1 -v shared-data:/app/data image1
docker run -d --name container2 -v shared-data:/app/data image2
Click to reveal answer
beginner
Why is sharing volumes between containers useful?
It allows containers to share files and data easily, such as logs, configuration files, or databases, without copying data between containers or rebuilding images.
Click to reveal answer
Which Docker command creates a volume named 'data-vol'?
Adocker volume create data-vol
Bdocker create volume data-vol
Cdocker volume new data-vol
Ddocker volume add data-vol
✗ Incorrect
The correct command to create a volume is 'docker volume create '.
How do you mount a volume named 'shared-vol' to '/data' inside a container?
Adocker run -v /data:shared-vol image
Bdocker run --mount shared-vol:/data image
Cdocker run --volume /data:shared-vol image
Ddocker run -v shared-vol:/data image
✗ Incorrect
The syntax to mount a volume is '-v volume-name:container-path'.
What happens if two containers share the same Docker volume?
AThey cannot access the volume simultaneously.
BThey share the same data stored in the volume.
CEach container gets a copy of the volume data.
DThe volume is deleted after the first container stops.
✗ Incorrect
Sharing a volume means both containers access the same data location.
Which of these is NOT a benefit of sharing volumes between containers?
APersistent data storage
BData sharing between containers
CAutomatic container networking
DAvoiding data duplication
✗ Incorrect
Sharing volumes does not handle networking between containers.
To share a volume between containers, you must:
ACreate a volume and mount it in both containers
BCopy files manually between containers
CUse the same image for both containers
DRun containers on the same host only
✗ Incorrect
Sharing volumes requires creating a volume and mounting it into each container.
Explain how to share data between two Docker containers using volumes.
Think about creating a common storage space both containers can use.
You got /3 concepts.
Describe the benefits of using Docker volumes to share data between containers.
Consider why sharing data directly is better than copying files.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of sharing volumes between Docker containers?
easy
A. To automatically update container images
B. To increase the CPU performance of containers
C. To allow containers to access and modify the same files
D. To isolate containers completely from each other
Solution
Step 1: Understand volume sharing concept
Sharing volumes means multiple containers can read and write the same files stored in a volume.
Step 2: Identify the purpose of sharing volumes
This allows containers to share data easily, like sharing notes or files in a folder between friends.
Final Answer:
To allow containers to access and modify the same files -> Option C
Quick Check:
Sharing volumes = shared files access [OK]
Hint: Sharing volumes means sharing files between containers [OK]
2. Which Docker command syntax correctly shares a volume named shared_data between two containers app1 and app2?
easy
A. docker run --volumes shared_data:/data --name app1 busybox
B. docker run -v shared_data:/data --name app1 busybox
C. docker run -v /shared_data:/data --name app1 busybox
D. docker run -v shared_data --name app1 --link app2 busybox
Solution
Step 1: Check volume syntax for sharing
The correct syntax to share a named volume is -v volume_name:container_path. docker run -v shared_data:/data --name app1 busybox uses -v shared_data:/data which is correct.
Step 2: Verify other options
docker run --volumes shared_data:/data --name app1 busybox uses invalid --volumes flag (should be --volume or -v). docker run -v /shared_data:/data --name app1 busybox uses a host path, not a named volume. docker run -v shared_data --name app1 --link app2 busybox uses incomplete volume syntax (missing :/data) and --link which is unrelated to volume sharing.
Final Answer:
docker run -v shared_data:/data --name app1 busybox -> Option B
Quick Check:
Use -v volume_name:path to share volumes [OK]
Hint: Use -v volume_name:container_path to share volumes [OK]
Common Mistakes:
Using host paths instead of named volumes
Confusing --link with volume sharing
Using incorrect volume syntax
3. Given these commands, what will be the output of docker exec app2 cat /data/message.txt?
docker volume create shared_vol
docker run -d -v shared_vol:/data --name app1 busybox sh -c "echo Hello > /data/message.txt"
docker run -d -v shared_vol:/data --name app2 busybox sleep 1000
medium
A. Empty output
B. Error: file not found
C. Container app2 does not exist
D. Hello
Solution
Step 1: Understand volume sharing effect
Both containers use the same volume shared_vol mounted at /data. Writing in app1 creates the file in the shared volume.
Step 2: Check file access from app2
Since app2 mounts the same volume, it can read the file /data/message.txt created by app1. So the command outputs "Hello".
Final Answer:
Hello -> Option D
Quick Check:
Shared volume files visible in all containers [OK]
Hint: Shared volumes show same files in all containers [OK]
Common Mistakes:
Assuming files are isolated per container
Expecting file not found error
Confusing container names or existence
4. You tried to share a volume between two containers but the second container cannot see the files created by the first. Which of these is the most likely cause?
medium
A. The volume was not named the same in both containers
B. The containers are running different images
C. The containers are on different networks
D. The first container did not expose ports
Solution
Step 1: Check volume naming consistency
For containers to share data, they must use the exact same volume name. Different names create separate volumes.
Step 2: Evaluate other options
Different images or networks do not affect volume sharing. Port exposure is unrelated to file sharing.
Final Answer:
The volume was not named the same in both containers -> Option A
Quick Check:
Same volume name needed to share data [OK]
Hint: Use identical volume names to share data [OK]
Common Mistakes:
Thinking network or image affects volume sharing
Confusing port exposure with volumes
Using different volume names by mistake
5. You want two containers to share a volume but keep their own separate data initially, then merge changes later. Which Docker feature or approach helps achieve this?
hard
A. Use named volumes with different initial content and copy files manually
B. Use a bind mount to a host directory shared by both containers
C. Use Docker networks to share data between containers
D. Run containers with --rm to remove volumes after exit
Solution
Step 1: Understand volume sharing with initial separate data
Named volumes start empty by default. To have separate initial data, create volumes separately and copy files manually.
Step 2: Consider merging changes later
After initial separate data, you can copy or sync files between volumes or containers to merge changes.
Step 3: Evaluate other options
Bind mounts share host directories but do not isolate initial data. Networks do not share files. --rm removes containers and volumes, not helpful here.
Final Answer:
Use named volumes with different initial content and copy files manually -> Option A
Quick Check:
Named volumes + manual copy = separate then merge [OK]
Hint: Start with separate volumes, copy files to merge later [OK]
Common Mistakes:
Assuming networks share files
Using --rm which deletes volumes
Thinking bind mounts isolate initial data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.