What is a Docker image in the context of Jenkins pipelines?
A Docker image is a packaged snapshot of an application and its environment. In Jenkins pipelines, it acts as an artifact that can be built, stored, and reused to deploy consistent application versions.
Click to reveal answer
beginner
Why store Docker images as artifacts in Jenkins?
Storing Docker images as artifacts ensures that the exact application version is saved and can be deployed or tested later. It helps maintain consistency and traceability in the software delivery process.
Click to reveal answer
intermediate
Which Jenkins plugin is commonly used to push Docker images to a registry?
The 'Docker Pipeline' plugin is commonly used in Jenkins to build, tag, and push Docker images to registries like Docker Hub or private registries.
Click to reveal answer
beginner
What is the typical Jenkins pipeline step to build a Docker image?
The typical step is: docker.build('image-name:tag'). This command builds the Docker image from the Dockerfile in the workspace.
Click to reveal answer
intermediate
How can you ensure a Docker image artifact is reused in later Jenkins pipeline stages?
You can tag the Docker image with a unique version or build number and push it to a Docker registry. Later stages pull the image by this tag to reuse the exact artifact.
Click to reveal answer
What command in Jenkins pipeline builds a Docker image?
Adocker.build('my-image:latest')
Bdocker.push('my-image:latest')
Cdocker.pull('my-image:latest')
Ddocker.run('my-image:latest')
✗ Incorrect
The 'docker.build' command builds a Docker image from the Dockerfile.
Why push a Docker image to a registry in Jenkins?
ATo run the image on Jenkins server
BTo store the image as an artifact for reuse
CTo delete the image from local storage
DTo convert the image to a container
✗ Incorrect
Pushing to a registry stores the image so it can be reused or deployed later.
Which plugin helps Jenkins interact with Docker images?
ADocker Pipeline plugin
BGit plugin
CMaven plugin
DSlack plugin
✗ Incorrect
The Docker Pipeline plugin provides Docker commands in Jenkins pipelines.
What is an artifact in Jenkins?
AA Jenkins user account
BA Jenkins plugin
CA build failure report
DA file or image saved after a build for later use
✗ Incorrect
Artifacts are outputs like files or images saved after a build.
How do you tag a Docker image in Jenkins pipeline?
Adocker.push('my-image')
Bdocker.tag('my-image')
Cdocker.build('my-image:1.0')
Ddocker.run('my-image')
✗ Incorrect
Tagging is done by specifying the tag in the build command like 'my-image:1.0'.
Explain how Docker images are used as artifacts in Jenkins pipelines.
Think about build, tag, push, and reuse steps.
You got /4 concepts.
Describe the benefits of storing Docker images as artifacts in a CI/CD pipeline.
Consider reliability and repeatability in software delivery.
You got /4 concepts.
Practice
(1/5)
1. What is the main reason to save a Docker image as an artifact in Jenkins?
easy
A. To run the image on a different operating system
B. To delete the image after the build
C. To convert the image into a container
D. To reuse the image later without rebuilding it
Solution
Step 1: Understand Docker image reuse
Saving a Docker image as an artifact allows you to reuse it later without rebuilding, saving time and resources.
Step 2: Identify Jenkins artifact purpose
Jenkins artifacts store files from builds for later use or sharing, perfect for Docker images.
Final Answer:
To reuse the image later without rebuilding it -> Option D
Quick Check:
Docker image reuse = To reuse the image later without rebuilding it [OK]
Hint: Artifacts store files to reuse later, like saving your work [OK]
Common Mistakes:
Thinking artifacts delete images
Confusing image with container
Assuming artifacts change OS compatibility
2. Which Jenkins pipeline step correctly archives a saved Docker image file named myimage.tar?
easy
A. archiveArtifacts artifacts: 'myimage.tar'
B. archiveArtifacts file: 'myimage.tar'
C. archiveArtifact artifacts: 'myimage.tar'
D. archiveArtifacts files: 'myimage.tar'
Solution
Step 1: Recall Jenkins archiveArtifacts syntax
The correct syntax uses the parameter name 'artifacts' to specify files to archive.
Step 2: Match correct parameter and spelling
archiveArtifacts artifacts: 'myimage.tar' uses 'archiveArtifacts artifacts: 'myimage.tar'', which is correct syntax.
Final Answer:
archiveArtifacts artifacts: 'myimage.tar' -> Option A
Quick Check:
Correct parameter is 'artifacts' = archiveArtifacts artifacts: 'myimage.tar' [OK]
Hint: Use 'artifacts' parameter exactly in archiveArtifacts step [OK]
Common Mistakes:
Using 'file' instead of 'artifacts'
Misspelling 'archiveArtifacts'
Using singular 'archiveArtifact'
3. Given this Jenkins pipeline snippet:
stage('Save Image') {
steps {
sh 'docker save myapp:latest -o myapp.tar'
archiveArtifacts artifacts: 'myapp.tar'
}
}
What will Jenkins do after this stage completes?
medium
A. Delete the Docker image myapp:latest
B. Save the Docker image as a file and archive it as a build artifact
C. Run the Docker container from the saved image
D. Build a new Docker image named myapp:latest
Solution
Step 1: Analyze docker save command
The command 'docker save myapp:latest -o myapp.tar' saves the Docker image to a file named myapp.tar.
Step 2: Understand archiveArtifacts usage
The 'archiveArtifacts' step archives the saved file as a Jenkins build artifact for later use.
Final Answer:
Save the Docker image as a file and archive it as a build artifact -> Option B
Quick Check:
docker save + archiveArtifacts = Save the Docker image as a file and archive it as a build artifact [OK]
Hint: docker save creates file; archiveArtifacts stores it [OK]
Common Mistakes:
Confusing save with build
Thinking it runs containers
Assuming image is deleted
4. You wrote this Jenkins pipeline snippet:
sh 'docker save myapp:latest -o myapp.tar'
archiveArtifacts file: 'myapp.tar'
Why does Jenkins fail to archive the Docker image file?
medium
A. Because 'docker save' does not create a file
B. Because the image name is incorrect
C. Because the parameter name should be 'artifacts', not 'file'
D. Because archiveArtifacts cannot archive .tar files
Solution
Step 1: Check archiveArtifacts parameter
The correct parameter to specify files is 'artifacts', not 'file'. Using 'file' causes failure.
Step 2: Confirm docker save output
'docker save' correctly creates the file 'myapp.tar', so the problem is not with the file creation.
Final Answer:
Because the parameter name should be 'artifacts', not 'file' -> Option C
Quick Check:
Parameter must be 'artifacts' = Because the parameter name should be 'artifacts', not 'file' [OK]
Hint: Use 'artifacts' parameter exactly in archiveArtifacts step [OK]
Common Mistakes:
Using 'file' instead of 'artifacts'
Assuming docker save fails silently
Thinking archiveArtifacts rejects .tar files
5. You want to reuse a Docker image saved as appimage.tar from a previous Jenkins build artifact in a new pipeline. Which sequence correctly loads and runs the image?
hard
A. sh 'docker load -i appimage.tar'
sh 'docker run appimage:latest'
B. sh 'docker run -i appimage.tar'
sh 'docker load appimage:latest'
C. sh 'docker save -i appimage.tar'
sh 'docker run appimage:latest'
D. sh 'docker load appimage.tar'
sh 'docker run appimage:latest'
Solution
Step 1: Understand docker load syntax
To load an image from a file, use 'docker load -i filename'. This imports the image into Docker.
Step 2: Run the loaded image
After loading, run the image by its tag, e.g., 'docker run appimage:latest'.
Final Answer:
sh 'docker load -i appimage.tar'
sh 'docker run appimage:latest' -> Option A
Quick Check:
Load with '-i', then run by tag = sh 'docker load -i appimage.tar'
sh 'docker run appimage:latest' [OK]
Hint: Load with 'docker load -i', then run image by tag [OK]
Common Mistakes:
Using 'docker run' with file instead of image tag
Confusing 'docker save' with 'docker load'
Omitting '-i' option in docker load
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.