CKAD Application Design and Build Practice Question
You have a Dockerfile that uses a multi-stage build. Which of the following statements about multi-stage builds is correct?
⚠ Common exam trap
Candidates often assume all stages must have unique names or that multi-stage builds increase image size, when in fact the key benefit is size reduction and stages can be referenced by index without names.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Artifacts from earlier stages can be copied to later stages using COPY --from
Multi-stage builds allow you to copy artifacts from a previous stage using the `COPY --from=<stage_name_or_index>` instruction. This enables you to keep only the necessary runtime artifacts in the final image, significantly reducing image size by discarding build-time dependencies and intermediate layers.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Multi-stage builds require a single FROM statement
Why it's wrong here
Multi-stage builds use multiple FROM instructions, each starting a separate stage with its own base image and build context. A single FROM would mean a conventional one-stage Dockerfile, leaving no way to isolate build-time dependencies from the minimal runtime image. Thus the option's assertion that multi-stage builds require a single FROM is exactly backwards.
- ✗
Multi-stage builds increase the final image size
Why it's wrong here
Multi-stage builds are specifically designed to minimize final image size by copying only necessary build artifacts—such as a compiled binary—into a slim final stage, while discarding all intermediate toolchain layers. The final image contains just the runtime and copied artifacts, so it is generally much smaller than a single-stage build that retains the entire build environment. Therefore, saying they increase the final image size misstates their purpose and typical effect.
- ✗
Each stage must have a unique name
Why it's wrong here
Stage names are optional; a stage can be left unnamed and referenced by its zero-based index, such as COPY --from=0. The Dockerfile format does not require that every stage have a name, let alone a unique one, so names are purely for convenience and readability. The claim that each stage must have a unique name is false.
- ✓
Artifacts from earlier stages can be copied to later stages using COPY --from
Why this is correct
COPY --from=<stage> is the mechanism that makes multi-stage builds effective, letting you select a named stage or a numeric index and copy specific files or directories into the current build stage. This allows the final stage to contain only the runtime and essential artifacts, not the compiler, headers, or source code from earlier stages. This is a correct statement and is the core feature of multi-stage builds.
Go deeper
Related to this question
About these practice questions
One of 826 original CKAD practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This CKAD practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CKAD exam.