📖 Scenario: You are creating a Docker image for a simple web application. You need to install necessary packages inside the image using the RUN instruction in a Dockerfile.
🎯 Goal: Build a Dockerfile that uses the RUN instruction to install curl and git packages on an Ubuntu base image.
📋 What You'll Learn
Use the official Ubuntu base image
Use the RUN instruction to update package lists
Use the RUN instruction to install curl and git
Print the installed versions of curl and git to verify installation
💡 Why This Matters
🌍 Real World
Dockerfiles are used to create images that package applications and their dependencies. Using RUN instructions lets you install software inside these images.
💼 Career
Understanding RUN instructions is essential for DevOps roles that involve containerization and building Docker images for deployment.
Progress0 / 4 steps
1
Create the base Dockerfile
Create a Dockerfile starting with the official Ubuntu base image using FROM ubuntu:latest.
Docker
Hint
The first line of a Dockerfile usually specifies the base image with FROM.
2
Add a RUN instruction to update packages
Add a RUN instruction to update the package list using apt-get update.
Docker
Hint
Use RUN apt-get update to refresh the package list inside the image.
3
Install curl and git using RUN
Add a RUN instruction to install curl and git using apt-get install -y curl git.
Docker
Hint
Use apt-get install -y curl git to install both packages without prompts.
4
Verify installation with RUN commands
Add a RUN instruction to print the versions of curl and git using curl --version and git --version.
Docker
Hint
Use RUN curl --version && git --version to check both versions in one command.
Practice
(1/5)
1. What does the RUN instruction do in a Dockerfile?
easy
A. Executes commands during the image build process
B. Starts a container from an image
C. Copies files from host to container
D. Defines environment variables for the container
Solution
Step 1: Understand Dockerfile instructions
The RUN instruction is used to execute commands while building the Docker image.
Step 2: Differentiate from other instructions
Other instructions like COPY or ENV serve different purposes, not command execution.
Final Answer:
Executes commands during the image build process -> Option A
Quick Check:
RUN = execute commands during build [OK]
Hint: RUN runs commands while building the image [OK]
Common Mistakes:
Confusing RUN with CMD or ENTRYPOINT
Thinking RUN starts containers
Mixing RUN with COPY or ENV
2. Which of the following is the correct syntax to install curl using RUN in a Debian-based Docker image?
easy
A. RUN apt-get install curl
B. RUN apt-get update && apt-get install -y curl
C. RUN install curl
D. RUN curl install
Solution
Step 1: Understand package installation in Debian
Before installing packages, you must update the package list using apt-get update.
Step 2: Use correct flags and chaining
The -y flag auto-confirms installation, and chaining commands with && ensures update runs before install.
Final Answer:
RUN apt-get update && apt-get install -y curl -> Option B
Quick Check:
Update then install with -y flag [OK]
Hint: Always update before install and use -y flag [OK]
Common Mistakes:
Skipping apt-get update
Not using -y to auto-confirm
Wrong command order or syntax
3. Given this Dockerfile snippet:
FROM ubuntu:latest
RUN echo "Hello" && echo "World"
What will be the output when building this Docker image?
medium
A. Hello World printed during build
B. No output shown during build
C. Error because of missing semicolon
D. Only 'Hello' printed, 'World' ignored
Solution
Step 1: Analyze the RUN command chaining
The command uses && to run two echo commands sequentially during build.
Step 2: Understand Docker build output
During build, the output of RUN commands is shown in the terminal, so both 'Hello' and 'World' will print.
Final Answer:
Hello World printed during build -> Option A
Quick Check:
RUN shows command output during build [OK]
Hint: RUN output appears during build, && runs commands sequentially [OK]
Common Mistakes:
Thinking RUN output is hidden
Confusing && with ;
Assuming only first command runs
4. Identify the error in this Dockerfile RUN instruction:
RUN apt-get update & apt-get install -y git
medium
A. RUN cannot have multiple commands
B. Missing -y flag for apt-get install
C. apt-get update should be last command
D. Using single & instead of && causes syntax error
Solution
Step 1: Check command chaining syntax
Single & runs command in background and is invalid in Docker RUN; && is needed to chain commands properly.
Step 2: Confirm correct chaining for sequential execution
Using && ensures the second command runs only if the first succeeds.
Final Answer:
Using single & instead of && causes syntax error -> Option D
Quick Check:
Use && to chain commands in RUN [OK]
Hint: Use && not & to chain commands in RUN [OK]
Common Mistakes:
Using & instead of &&
Ignoring command chaining rules
Assuming RUN runs commands in parallel
5. You want to reduce Docker image layers by combining multiple commands in a single RUN instruction. Which is the best way to do this?
hard
A. Use multiple RUN instructions, one per command
B. Separate commands with semicolons in multiple RUN lines
C. Chain commands with && inside one RUN instruction
D. Use CMD instead of RUN for multiple commands
Solution
Step 1: Understand Docker image layers
Each RUN instruction creates a new image layer, increasing image size.
Step 2: Combine commands to reduce layers
Chaining commands with && inside one RUN instruction runs them sequentially in a single layer.
Final Answer:
Chain commands with && inside one RUN instruction -> Option C
Quick Check:
Combine commands with && to reduce layers [OK]
Hint: Chain commands with && in one RUN to reduce layers [OK]
Common Mistakes:
Using multiple RUNs increases layers
Using CMD instead of RUN for build steps
Separating commands with semicolons without chaining
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.