Bird
Raised Fist0
Dockerdevops~20 mins

COPY instruction for adding files in Docker - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
COPY Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the result of this Dockerfile COPY command?
Given this Dockerfile snippet:
FROM alpine
COPY ./app /usr/src/app

What happens when you build this Docker image?
Docker
FROM alpine
COPY ./app /usr/src/app
AThe image build fails because the source path is missing a trailing slash.
BThe file 'app' is copied as '/usr/src/app' inside the image.
CThe image build ignores the COPY command and continues.
DThe local folder 'app' is copied into the image at '/usr/src/app'.
Attempts:
2 left
💡 Hint
COPY copies files or folders from your computer into the image.
🧠 Conceptual
intermediate
1:30remaining
Understanding relative paths in COPY instruction
In a Dockerfile, what does the source path in COPY refer to?
AThe path relative to the root directory of the host machine.
BThe absolute path inside the container filesystem.
CThe path relative to the Docker build context directory.
DThe path relative to the Dockerfile location.
Attempts:
2 left
💡 Hint
Think about where Docker looks for files when building.
❓ Configuration
advanced
2:00remaining
Which COPY command correctly copies multiple files?
You want to copy two files, 'index.html' and 'style.css', from your local folder into '/usr/share/nginx/html' inside the image. Which COPY command is correct?
ACOPY index.html style.css /usr/share/nginx/html/
BCOPY ["index.html", "style.css", "/usr/share/nginx/html/"]
CCOPY index.html /usr/share/nginx/html/ style.css
DCOPY /usr/share/nginx/html/ index.html style.css
Attempts:
2 left
💡 Hint
COPY can take multiple source files followed by one destination folder.
❓ Troubleshoot
advanced
2:30remaining
Why does this COPY command fail during build?
Dockerfile snippet:
FROM ubuntu
COPY ./config /etc/config

When building, you get an error: 'COPY failed: stat /var/lib/docker/tmp/...: no such file or directory'. What is the likely cause?
Docker
FROM ubuntu
COPY ./config /etc/config
AThe 'config' folder does not exist in the build context directory.
BDocker daemon does not have permission to write to '/etc/config'.
CThe Dockerfile syntax is incorrect; COPY needs a trailing slash on source.
DThe destination path '/etc/config' is invalid inside the container.
Attempts:
2 left
💡 Hint
Check if the source folder is present where Docker expects it.
✅ Best Practice
expert
3:00remaining
What is the best practice for copying files to reduce Docker image size?
You want to copy only necessary files into your Docker image to keep it small. Which COPY instruction approach is best?
AUse .dockerignore to exclude unnecessary files and COPY only needed files.
BCOPY the entire project folder to avoid missing files.
CCOPY files one by one to control what is added.
DUse ADD instead of COPY to automatically extract archives.
Attempts:
2 left
💡 Hint
Think about how to prevent unwanted files from being sent to Docker build.

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

  1. 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.
  2. 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.
  3. Final Answer:

    It copies files or folders from your computer into the Docker image. -> Option A
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    COPY app.py /usr/src/app/ -> Option C
  4. 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

  1. Step 1: Understand COPY with folder source

    Using COPY src/ /app/ copies all contents inside src into /app/ inside the image.
  2. Step 2: Predict RUN ls output

    Since src contains main.py and utils.py, listing /app/ will show these two files.
  3. Final Answer:

    main.py utils.py -> Option D
  4. 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
  • Thinking COPY copies folder as a subfolder
  • Assuming error if folder exists
4. You wrote this Dockerfile line:
COPY --chown=appuser:appgroup config.yaml /etc/config/

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

  1. Step 1: Understand --chown flag usage

    The --chown flag sets ownership of copied files but requires Docker version 17.09 or newer.
  2. Step 2: Analyze error message

    An 'invalid flag' error usually means the Docker version does not recognize the flag, indicating it is too old.
  3. Final Answer:

    Docker version is too old and does not support --chown flag. -> Option A
  4. 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

  1. Step 1: Understand multiple source files syntax

    To copy multiple files, list them separated by spaces before the destination path.
  2. 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.
  3. Final Answer:

    COPY index.html style.css /var/www/html/ -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard