What does it mean when a Docker container has a read-only filesystem?
It means the container's filesystem cannot be changed or written to during its runtime. Any attempt to write files will fail unless specific writable areas are set up.
Click to reveal answer
beginner
How do you start a Docker container with a read-only filesystem?
Use the --read-only flag when running the container, like docker run --read-only image_name.
Click to reveal answer
intermediate
Why would you use a read-only filesystem in a container?
To improve security by preventing changes inside the container, reduce accidental data loss, and ensure consistency by avoiding unexpected writes.
Click to reveal answer
intermediate
How can a container with a read-only filesystem still write data if needed?
By mounting writable volumes or tmpfs (temporary file systems) at specific paths inside the container where write access is required.
Click to reveal answer
beginner
What happens if a process inside a read-only container tries to write to the filesystem?
The write operation will fail with an error because the filesystem does not allow modifications.
Click to reveal answer
Which Docker run option makes the container's filesystem read-only?
A--read-only
B--no-write
C--readonlyfs
D--disable-write
✗ Incorrect
The correct flag to make the container filesystem read-only is --read-only.
How can you allow write access in a read-only container?
AMount a writable volume or tmpfs
BUse --write-only flag
CRestart the container with write permissions
DYou cannot allow write access in a read-only container
✗ Incorrect
Writable volumes or tmpfs mounts provide specific writable areas inside a read-only container.
What is a main benefit of using a read-only filesystem in containers?
AReduces container size
BIncreases container startup speed
CImproves security by preventing changes
DAllows unlimited writes
✗ Incorrect
Read-only filesystems help improve security by stopping any changes inside the container.
If a container tries to write to a read-only filesystem, what happens?
AFilesystem becomes writable
BWrite succeeds silently
CContainer restarts automatically
DWrite fails with an error
✗ Incorrect
Write attempts fail because the filesystem does not allow modifications.
Which of these is NOT a way to provide writable space in a read-only container?
AMounting a volume
BUsing --read-only flag
CUsing tmpfs
DMounting a bind mount
✗ Incorrect
The --read-only flag makes the filesystem read-only; it does not provide writable space.
Explain how to run a Docker container with a read-only filesystem and still allow writing to specific directories.
Think about combining read-only with writable mounts.
You got /3 concepts.
Describe the benefits and limitations of using read-only filesystems in Docker containers.
Consider both pros and cons.
You got /4 concepts.
Practice
(1/5)
1. What does the --read-only flag do when starting a Docker container?
easy
A. Runs the container with root privileges.
B. Deletes all files inside the container before starting it.
C. Makes the container's filesystem read-only, preventing any changes inside it.
D. Allows the container to write to the host filesystem.
Solution
Step 1: Understand the --read-only flag purpose
The --read-only flag makes the container's filesystem read-only, so no files can be changed or created inside the container.
Step 2: Compare other options
Running with root privileges, deleting files, or allowing writes to the host filesystem are unrelated or incorrect behaviors for this flag.
Final Answer:
Makes the container's filesystem read-only, preventing any changes inside it. -> Option C
Quick Check:
--read-only = read-only filesystem [OK]
Hint: Remember: --read-only locks container files from changes [OK]
Common Mistakes:
Thinking it deletes files instead of locking them
Confusing with volume mounts
Assuming it grants root access
2. Which of the following is the correct Docker command to start a container with a read-only filesystem?
easy
A. docker run --read-only alpine
B. docker run --readonly alpine
C. docker run -ro alpine
D. docker run --readwrite alpine
Solution
Step 1: Check the correct flag syntax
The correct flag to make the filesystem read-only is --read-only with a hyphen.
Step 2: Validate options
docker run --read-only alpine uses the correct flag --read-only. The short flag -ro doesn't exist, --readonly lacks the hyphen, and --readwrite is the opposite meaning.
Final Answer:
docker run --read-only alpine -> Option A
Quick Check:
Correct flag is --read-only [OK]
Hint: Use double dash and hyphen: --read-only [OK]
Common Mistakes:
Using --readonly without hyphen
Using short flags like -ro which don't exist
Confusing with --readwrite
3. Consider this command: docker run --read-only -v /data alpine sh -c "echo hello > /data/file.txt && cat /data/file.txt" What will be the output?
medium
A. hello
B. Permission denied error
C. No such file or directory error
D. Empty output
Solution
Step 1: Understand --read-only with volume mount
The container filesystem is read-only, but the /data directory is mounted as a volume, which is writable.
Step 2: Analyze the command behavior
The command writes "hello" to /data/file.txt and then reads it back. Since /data is writable, this succeeds and outputs "hello".
Assuming entire container is fully read-only including volumes
Expecting permission denied on volume writes
Confusing volume mount syntax
4. You run this command: docker run --read-only alpine sh -c "touch /tmp/testfile" But it fails with a permission error. What is the best fix?
medium
A. Remove the --read-only flag
B. Add a writable tmpfs mount for /tmp using --tmpfs /tmp
C. Run the container as root user
D. Use -v /tmp:/tmp to mount host /tmp
Solution
Step 1: Identify cause of permission error
The container filesystem is read-only, so creating files in /tmp fails.
Step 2: Provide writable space with tmpfs
Using --tmpfs /tmp mounts a writable temporary filesystem at /tmp, allowing file creation despite read-only root.
Final Answer:
Add a writable tmpfs mount for /tmp using --tmpfs /tmp -> Option B
Quick Check:
Writable tmpfs fixes write errors in read-only containers [OK]
Hint: Use --tmpfs to add writable temp folders in read-only containers [OK]
Common Mistakes:
Removing --read-only loses security benefits
Mounting host /tmp may cause permission issues
Assuming root user can write despite read-only filesystem
5. You want to run a container with a read-only filesystem but allow writing only to /app/logs. Which command correctly achieves this?
hard
A. docker run --read-only alpine
B. docker run --read-only --tmpfs /app/logs alpine
C. docker run -v /host/logs:/app/logs alpine
D. docker run --read-only -v /host/logs:/app/logs alpine
Solution
Step 1: Understand read-only with writable folder
The container filesystem is read-only, but mounting a host directory as a volume at /app/logs makes that folder writable.
Step 2: Evaluate options
docker run --read-only -v /host/logs:/app/logs alpine uses --read-only plus a volume mount for writable logs. docker run --read-only --tmpfs /app/logs alpine uses tmpfs which is temporary and not persistent. docker run -v /host/logs:/app/logs alpine lacks --read-only. docker run --read-only alpine has no writable folder.
Final Answer:
docker run --read-only -v /host/logs:/app/logs alpine -> Option D
Quick Check:
Volume mount + --read-only = writable folder [OK]
Hint: Use volume mount with --read-only for writable folders [OK]
Common Mistakes:
Using tmpfs when persistence is needed
Forgetting --read-only flag
Expecting writable without volume or tmpfs
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.