What does the COPY instruction do in a Dockerfile?
The COPY instruction copies files or directories from the build context on your computer into the Docker image at a specified path.
Click to reveal answer
beginner
How do you copy a single file named app.py from your local folder to the Docker image's /app directory?
Use the instruction: COPY app.py /app/
Click to reveal answer
intermediate
Can the COPY instruction copy multiple files or folders at once?
Yes, you can copy multiple files or folders by listing them separated by spaces before the destination path, for example: COPY file1.txt file2.txt /app/
Click to reveal answer
intermediate
What happens if the destination folder in COPY does not exist inside the image?
Docker will create the destination folder automatically before copying the files.
Click to reveal answer
intermediate
What is the difference between COPY and ADD instructions in Docker?
COPY only copies files and folders from the build context. ADD can also extract compressed files and fetch files from URLs, but COPY is preferred for simple copying because it is more predictable.
Click to reveal answer
Which Dockerfile instruction copies files from your computer into the image?
ARUN
BCOPY
CCMD
DEXPOSE
✗ Incorrect
COPY is used to copy files or directories from your local build context into the Docker image.
What happens if the destination folder in COPY does not exist?
AThe build fails with an error
BDocker ignores the COPY instruction
CFiles are copied to the root folder instead
DDocker creates the folder automatically
✗ Incorrect
Docker creates the destination folder if it does not exist before copying files.
How do you copy multiple files in one COPY instruction?
AList all files separated by spaces before the destination
BUse multiple COPY instructions
CUse a wildcard * only
DYou cannot copy multiple files at once
✗ Incorrect
You can list multiple files separated by spaces before the destination path in one COPY instruction.
Which instruction is preferred for simple file copying in Dockerfiles?
ACOPY
BADD
CRUN
DENV
✗ Incorrect
COPY is preferred for simple copying because it is more predictable and only copies files.
Can COPY fetch files from a URL?
AOnly if the URL is inside the image
BYes, COPY can fetch from URLs
CNo, COPY only copies from local build context
DYes, but only for HTTPS URLs
✗ Incorrect
COPY cannot fetch files from URLs; ADD can do that, but COPY only copies local files.
Explain how the COPY instruction works in a Dockerfile and when you would use it.
Think about how you move files into a container image during build.
You got /4 concepts.
Describe the difference between COPY and ADD instructions in Dockerfiles.
Consider extra features ADD has beyond copying.
You got /4 concepts.
Practice
(1/5)
1. What does the COPY instruction do in a Dockerfile?
easy
A. It copies files or folders from your computer into the Docker image.
B. It copies files from the Docker image to your computer.
C. It copies environment variables into the container.
D. It copies running containers to new images.
Solution
Step 1: Understand the purpose of COPY
The COPY instruction is used to transfer files or folders from the build context (your computer) into the Docker image during build time.
Step 2: Differentiate from other options
Options A, B, and D describe actions not performed by COPY. COPY does not move files out of the image or handle environment variables or containers directly.
Final Answer:
It copies files or folders from your computer into the Docker image. -> Option A
Quick Check:
COPY moves files into image = C [OK]
Hint: COPY moves files from host to image during build [OK]
Common Mistakes:
Thinking COPY moves files from image to host
Confusing COPY with environment variable setting
Assuming COPY copies running containers
2. Which of the following is the correct syntax to copy a file named app.py from your local folder to /usr/src/app/ inside the Docker image?
easy
A. COPY app.py > /usr/src/app/
B. COPY /usr/src/app/ app.py
C. COPY app.py /usr/src/app/
D. COPY app.py : /usr/src/app/
Solution
Step 1: Understand COPY syntax
The correct syntax is COPY <source> <destination>. The source is the file on your computer, and the destination is the path inside the image.
Step 2: Check each option
COPY app.py /usr/src/app/ correctly uses COPY app.py /usr/src/app/. Options B, C, and D use incorrect order or invalid symbols.
Final Answer:
COPY app.py /usr/src/app/ -> Option C
Quick Check:
COPY source destination = A [OK]
Hint: COPY syntax is COPY source destination [OK]
Common Mistakes:
Reversing source and destination
Using symbols like > or : instead of space
Adding slashes incorrectly
3. Given this Dockerfile snippet:
FROM python:3.12
COPY src/ /app/
RUN ls /app/
What will be the output of RUN ls /app/ if the local folder src contains files main.py and utils.py?
medium
A. src
B. main.py
C. No such file or directory
D. main.py utils.py
Solution
Step 1: Understand COPY with folder source
Using COPY src/ /app/ copies all contents inside src into /app/ inside the image.
Step 2: Predict RUN ls output
Since src contains main.py and utils.py, listing /app/ will show these two files.
Final Answer:
main.py utils.py -> Option D
Quick Check:
COPY folder copies contents = B [OK]
Hint: COPY folder/ dest copies folder contents, not folder itself [OK]
Common Mistakes:
Expecting folder name to appear inside destination
But during build, you get an error: invalid flag: --chown. What is the likely cause?
medium
A. Docker version is too old and does not support --chown flag.
B. The source file config.yaml does not exist.
C. The destination path /etc/config/ is invalid.
D. The --chown flag must be placed after the destination path.
Solution
Step 1: Understand --chown flag usage
The --chown flag sets ownership of copied files but requires Docker version 17.09 or newer.
Step 2: Analyze error message
An 'invalid flag' error usually means the Docker version does not recognize the flag, indicating it is too old.
Final Answer:
Docker version is too old and does not support --chown flag. -> Option A
Quick Check:
Old Docker lacks --chown support = D [OK]
Hint: Check Docker version if --chown flag errors appear [OK]
Common Mistakes:
Assuming source file missing causes invalid flag error
Thinking --chown position matters
Blaming destination path for flag errors
5. You want to copy multiple files index.html and style.css from your local folder into /var/www/html/ inside the Docker image using a single COPY instruction. Which is the correct way?
hard
A. COPY ["index.html", "style.css"] /var/www/html/
B. COPY index.html style.css /var/www/html/
C. COPY index.html /var/www/html/ style.css
D. COPY index.html; style.css /var/www/html/
Solution
Step 1: Understand multiple source files syntax
To copy multiple files, list them separated by spaces before the destination path.
Step 2: Evaluate options
COPY index.html style.css /var/www/html/: COPY index.html style.css /var/www/html/ correctly lists files followed by destination. COPY ["index.html", "style.css"] /var/www/html/ mixes JSON array for sources with space-separated destination, which is invalid syntax. Options C and D have incorrect syntax.
Final Answer:
COPY index.html style.css /var/www/html/ -> Option B
Quick Check:
Multiple files listed before destination = A [OK]
Hint: List multiple files separated by spaces before destination [OK]
Common Mistakes:
Using JSON array syntax incorrectly
Placing destination between source files
Using semicolons instead of spaces
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.