A .dockerignore file tells Docker which files and folders to ignore when building an image. This helps make builds faster and smaller by excluding unnecessary files.
Click to reveal answer
beginner
How do you write a pattern in .dockerignore to ignore all .log files?
You write *.log in the .dockerignore file to ignore all files ending with .log.
Click to reveal answer
beginner
True or False: Files listed in .dockerignore are still available on your local machine after the Docker build.
True. The .dockerignore file only affects what files are sent to the Docker build context. It does not delete or change files on your local machine.
Click to reveal answer
beginner
What happens if you do not use a .dockerignore file in your Docker project?
Docker will send all files in the build folder to the Docker daemon. This can make builds slower and images larger because unnecessary files are included.
Click to reveal answer
beginner
How can you ignore a folder named temp using .dockerignore?
Add temp/ to the .dockerignore file to ignore the entire temp folder and its contents.
Click to reveal answer
What does the .dockerignore file control?
AWhich files are sent to the Docker build context
BWhich files are deleted after build
CWhich files are copied into the container at runtime
DWhich files are executed inside the container
✗ Incorrect
The .dockerignore file controls which files and folders are excluded from the build context sent to Docker during image build.
Which pattern in .dockerignore ignores all files in the logs folder?
Alogs
B*.logs
Clogs/
D/logs
✗ Incorrect
Adding logs/ ignores the entire logs folder and its contents.
If you want to ignore all files named secret.txt anywhere in the project, what pattern should you use?
A*/secret.txt
Bsecret.txt
C**/secret.txt
Dsecret.txt/
✗ Incorrect
Simply writing secret.txt ignores all files with that exact name anywhere in the build context.
What is the effect of ignoring files with .dockerignore on the final Docker image size?
AIt reduces the image size by excluding unnecessary files
BIt increases the image size
CIt has no effect on image size
DIt deletes files from the image after build
✗ Incorrect
Ignoring files reduces the build context size, so fewer files are copied into the image, making it smaller.
Which of these files is commonly included in .dockerignore to speed up builds?
Aapp.py
BDockerfile
CREADME.md
Dnode_modules
✗ Incorrect
Folders like node_modules are often large and not needed in the build context, so they are ignored.
Explain what a .dockerignore file does and why it is useful in Docker projects.
Think about how sending fewer files to Docker helps.
You got /4 concepts.
Describe how you would write patterns in .dockerignore to ignore a folder and all files with a certain extension.
Consider ignoring a folder named 'temp' and all '.log' files.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of a .dockerignore file in a Docker project?
easy
A. To specify environment variables for the Docker container
B. To tell Docker which files and folders to exclude when building an image
C. To configure network settings for Docker containers
D. To list all files that must be included in the Docker image
Solution
Step 1: Understand the role of .dockerignore
The .dockerignore file lists files and folders Docker should skip during image build.
Step 2: Compare options with this role
Only To tell Docker which files and folders to exclude when building an image correctly states that .dockerignore excludes files/folders from the build context.
Final Answer:
To tell Docker which files and folders to exclude when building an image -> Option B
Quick Check:
.dockerignore excludes files from build context [OK]
Hint: Think: .dockerignore tells Docker what NOT to include [OK]
Common Mistakes:
Confusing .dockerignore with Dockerfile
Thinking it lists files to include instead of exclude
Assuming it configures container runtime settings
2. Which of the following is the correct syntax to ignore the node_modules folder in a .dockerignore file?
easy
A. node_modules
B. node_modules/*
C. /node_modules/*
D. !node_modules
Solution
Step 1: Review .dockerignore syntax for ignoring folders
Simply writing the folder name like node_modules ignores it and all its contents.
Step 2: Analyze options
A (node_modules) is correct because it ignores the folder and its contents. B (node_modules/*) and C (/node_modules/*) ignore only contents, leaving an empty folder in the build context. D (!node_modules) negates ignoring, so it includes the folder.
Final Answer:
node_modules -> Option A
Quick Check:
Folder name alone ignores folder and contents [OK]
Hint: Write folder name alone to ignore it fully [OK]
Common Mistakes:
Using ! to ignore instead of include
Adding slashes inconsistently
Confusing .dockerignore with .gitignore syntax
3. Given this .dockerignore content:
node_modules
secret.txt
!secret.txt.bak
Which files will be included in the Docker build context?
medium
A. secret.txt and secret.txt.bak only
B. node_modules folder, secret.txt, secret.txt.bak
C. node_modules folder and secret.txt.bak only
D. secret.txt.bak only
Solution
Step 1: Interpret the .dockerignore rules
Lines exclude node_modules and secret.txt. The !secret.txt.bak line re-includes secret.txt.bak.
Step 2: Determine included files
Excluded: node_modules and secret.txt. Included: secret.txt.bak because of the ! rule.
Final Answer:
secret.txt.bak only -> Option D
Quick Check:
! negates ignore = include secret.txt.bak [OK]
Hint: ! before filename re-includes it despite ignore [OK]
Common Mistakes:
Assuming ! negates all ignores
Including ignored folders by mistake
Ignoring the order of rules
4. You wrote this .dockerignore file:
node_modules
!node_modules/package.json
But package.json is still excluded from the build. What is the likely problem?
medium
A. Docker does not support negation (!) in .dockerignore
B. You must restart Docker daemon to apply .dockerignore changes
C. Negation does not work on files inside ignored folders
D. The syntax for negation is incorrect; use double exclamation marks (!!)
Solution
Step 1: Understand negation behavior in .dockerignore
Negation (!) cannot re-include files inside a folder that is ignored entirely.
Step 2: Analyze the problem
Since node_modules is ignored, negating node_modules/package.json does not include it back.
Final Answer:
Negation does not work on files inside ignored folders -> Option C
5. You want to speed up your Docker build by excluding all .log files except important.log in the root folder. Which .dockerignore content achieves this?
hard
A. *.log
!important.log
B. *.log
!important.log
!important.log
C. *.log
!important.log
!important/*.log
D. *.log
!important.log
!important/
Solution
Step 1: Write rule to ignore all .log files
Using *.log ignores all files ending with .log anywhere.
Step 2: Use negation to include only important.log in root
!important.log re-includes that specific file in the root folder.
Final Answer:
*.log\n!important.log -> Option A
Quick Check:
Ignore all .log, then include important.log [OK]
Hint: Ignore *.log then negate important.log to include it [OK]
Common Mistakes:
Repeating negation lines unnecessarily
Negating folders instead of files
Using wrong paths for negation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.