Bird
Raised Fist0
Dockerdevops~10 mins

Running a container with docker run - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Running a container with docker run
Start: User types docker run command
↓
Docker CLI parses command
↓
Check if image exists locally
↓
Create container
↓
Start container process
↓
Container runs and outputs logs
↓
Container stops or runs
This flow shows how the docker run command is processed: parsing, image check, container creation, and running.
Execution Sample
Docker
docker run hello-world
Runs the hello-world container which prints a welcome message and then exits.
Process Table
StepActionEvaluationResult
1User runs 'docker run hello-world'Command receivedStart processing
2Check if 'hello-world' image exists locallyImage found?No
3Pull 'hello-world' image from Docker HubDownload image layersImage downloaded
4Create container from 'hello-world' imageContainer createdContainer ready
5Start container processRun container's default commandContainer runs
6Container outputs welcome messagePrints to terminalMessage displayed
7Container process endsContainer stopsContainer exited
8docker run command endsContainer stoppedReturn to prompt
💡 Container finishes running the hello-world program and exits, ending the docker run command.
Status Tracker
VariableStartAfter Step 3After Step 5After Step 7
Image 'hello-world'Not presentDownloadedDownloadedDownloaded
Container stateNoneNoneRunningExited
OutputNoneNoneWelcome messageWelcome message
Key Moments - 2 Insights
Why does docker pull the image even if I just typed docker run?
Because docker run first checks if the image is available locally (see step 2). If not found, it pulls the image (step 3) before creating the container.
Does the container keep running after the hello-world message?
No, the container runs the hello-world program which prints a message and then exits (steps 6 and 7). The container stops immediately after.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, at which step does Docker download the image?
AStep 3
BStep 2
CStep 5
DStep 6
💡 Hint
Check the 'Action' and 'Result' columns in step 3 for image download details.
According to the variable tracker, what is the container state after step 5?
AExited
BRunning
CNone
DPaused
💡 Hint
Look at the 'Container state' row under 'After Step 5' in the variable tracker.
If the image was already present locally, which step would be skipped?
AStep 6
BStep 4
CStep 3
DStep 7
💡 Hint
Step 3 is about pulling the image; if image exists, Docker skips pulling.
Concept Snapshot
docker run <image> : Runs a container from the specified image.
If image not local, Docker pulls it first.
Creates and starts the container.
Container runs its default command.
Output shows in terminal.
Container stops when command ends.
Full Transcript
When you run 'docker run hello-world', Docker first checks if the image is on your computer. If not, it downloads the image from the internet. Then it creates a container from that image and starts it. The container runs the program inside, which prints a welcome message. After the message, the container stops and the command finishes. This process happens step-by-step as shown in the execution table and variable tracker.

Practice

(1/5)
1. What does the docker run command do?
easy
A. Starts a new container from a specified image
B. Builds a new Docker image from a Dockerfile
C. Stops a running Docker container
D. Deletes an existing Docker image

Solution

  1. Step 1: Understand the purpose of docker run

    The docker run command is used to start a new container based on a Docker image.
  2. Step 2: Differentiate from other Docker commands

    Commands like docker build create images, docker stop stops containers, and docker rmi removes images, so they are not correct here.
  3. Final Answer:

    Starts a new container from a specified image -> Option A
  4. Quick Check:

    docker run = start container [OK]
Hint: Remember: run = start container from image [OK]
Common Mistakes:
  • Confusing 'run' with 'build' command
  • Thinking 'run' deletes images
  • Mixing 'run' with stopping containers
2. Which of the following is the correct syntax to run an interactive container with a bash shell using the image ubuntu?
easy
A. docker run ubuntu -it bash
B. docker run -d ubuntu bash
C. docker run -it ubuntu bash
D. docker run ubuntu -d -it bash

Solution

  1. Step 1: Identify flags for interactive mode

    The -it flag is used to run a container interactively with a terminal attached.
  2. Step 2: Check command order and flags

    The correct syntax places flags immediately after docker run, then the image name, then the command to run inside the container.
  3. Final Answer:

    docker run -it ubuntu bash -> Option C
  4. Quick Check:

    Flags before image, -it for interactive [OK]
Hint: Put flags right after 'docker run', then image, then command [OK]
Common Mistakes:
  • Placing flags after image name
  • Using -d for interactive shell
  • Mixing order of command and flags
3. What will be the output of the following command?
docker run --rm alpine echo Hello World
medium
A. Hello World
B. Container ID printed
C. Error: alpine image not found
D. No output, container runs in background

Solution

  1. Step 1: Understand the command components

    docker run --rm alpine echo Hello World runs the echo Hello World command inside an Alpine container and removes the container after it finishes.
  2. Step 2: Predict the output

    The command prints Hello World to the terminal, then the container stops and is removed automatically.
  3. Final Answer:

    Hello World -> Option A
  4. Quick Check:

    Run with echo prints text, --rm cleans up [OK]
Hint: Echo prints text, --rm removes container after run [OK]
Common Mistakes:
  • Expecting container ID output
  • Thinking container stays running
  • Assuming image is missing
4. You run docker run -p 8080:80 nginx but cannot access the web server on port 8080. What is a likely cause?
medium
A. Port mapping syntax is incorrect
B. The container is not running
C. You forgot to add -d to run detached
D. Port 80 inside container is not exposed

Solution

  1. Step 1: Check container running status

    If the container is not running, port mapping won't work and you can't access the server.
  2. Step 2: Verify port exposure and syntax

    By default, nginx listens on port 80 and the syntax -p 8080:80 is correct. -d is optional but recommended for background.
  3. Final Answer:

    The container is not running -> Option B
  4. Quick Check:

    Container must run for port mapping to work [OK]
Hint: Check if container is running before checking ports [OK]
Common Mistakes:
  • Assuming port 80 is not exposed by nginx
  • Thinking -d is required for port mapping
  • Misunderstanding port mapping syntax
5. You want to run a container from the image myapp that needs environment variables API_KEY and DEBUG set, and expose port 5000 on the host to port 80 in the container. Which command is correct?
hard
A. docker run -e API_KEY=123 DEBUG=true -p 5000:80 myapp
B. docker run -p 80:5000 -e API_KEY=123 -e DEBUG=true myapp
C. docker run myapp -e API_KEY=123 -e DEBUG=true -p 5000:80
D. docker run -e API_KEY=123 -e DEBUG=true -p 5000:80 myapp

Solution

  1. Step 1: Set environment variables correctly

    Use -e VAR=value for each environment variable before the image name.
  2. Step 2: Map ports correctly

    Host port 5000 maps to container port 80 with -p 5000:80. The order is flags, then image name.
  3. Step 3: Verify command order and syntax

    Options must come before the image name. docker run -p 80:5000 -e API_KEY=123 -e DEBUG=true myapp reverses ports, C places options after image, D misses -e for second variable.
  4. Final Answer:

    docker run -e API_KEY=123 -e DEBUG=true -p 5000:80 myapp -> Option D
  5. Quick Check:

    Flags before image, correct port and env syntax [OK]
Hint: Put all flags before image; use -e for each env var [OK]
Common Mistakes:
  • Placing options after image name
  • Reversing port mapping order
  • Missing -e for environment variables
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