Bird
Raised Fist0
Dockerdevops~5 mins

Viewing container logs in Docker - Commands & Configuration

Choose your learning style10 modes available
Introduction
When you run applications inside containers, you often need to see what is happening inside them. Viewing container logs helps you check the output and errors your app produces, so you can understand its behavior or find problems.
When you want to check if your app inside a container started correctly.
When you need to find out why your containerized app crashed or stopped.
When you want to monitor real-time output from a running container.
When debugging issues during development of containerized applications.
When verifying that logs are being generated as expected inside containers.
Commands
This command runs an Nginx web server container in the background with the name 'example-app'. We use this to have a running container to view logs from.
Terminal
docker run -d --name example-app nginx:1.23
Expected OutputExpected
a1b2c3d4e5f67890123456789abcdef0123456789abcdef0123456789abcdef0
→
-d - Run container in detached mode (in background)
→
--name - Assign a custom name to the container
This command shows all the logs that the 'example-app' container has produced so far. It helps you see what the container outputted since it started.
Terminal
docker logs example-app
Expected OutputExpected
172.17.0.1 - - [27/Apr/2024:12:00:00 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.68.0"
This command shows the logs and keeps showing new log lines as they appear, like watching a live feed. The '-f' flag means 'follow'.
Terminal
docker logs -f example-app
Expected OutputExpected
172.17.0.1 - - [27/Apr/2024:12:00:00 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.68.0"
→
-f - Follow log output in real time
This command shows only the last 5 lines of logs from the container. Useful when logs are very long and you want to see recent activity.
Terminal
docker logs --tail 5 example-app
Expected OutputExpected
172.17.0.1 - - [27/Apr/2024:12:00:00 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.68.0" 172.17.0.1 - - [27/Apr/2024:12:01:00 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "-" "curl/7.68.0"
→
--tail - Show only the last N lines of logs
Key Concept

If you remember nothing else from this pattern, remember: use 'docker logs' with the container name to see what your container is outputting.

Common Mistakes
Trying to view logs of a container that is not running or does not exist.
Docker will return an error because there are no logs to show for a stopped or unknown container.
Make sure the container exists by using 'docker ps -a' before viewing logs. Note that logs can be viewed for stopped containers as well.
Not using the '-f' flag when wanting to see live logs.
Without '-f', you only see logs up to the moment you run the command, missing new log entries.
Use 'docker logs -f container-name' to follow logs in real time.
Using container ID partially or incorrectly when running 'docker logs'.
Docker requires the full or unique prefix of the container ID or the exact container name to find logs.
Use the full container name or check container IDs with 'docker ps' to use the correct identifier.
Summary
Run a container with 'docker run' to have a container producing logs.
Use 'docker logs container-name' to view all logs from that container.
Add '-f' to follow logs live and '--tail N' to see only recent lines.

Practice

(1/5)
1. What does the command docker logs CONTAINER do?
easy
A. Starts a new container
B. Deletes the specified container
C. Shows the logs of the specified container
D. Lists all running containers

Solution

  1. Step 1: Understand the command purpose

    The command docker logs is used to view the output logs of a container.
  2. Step 2: Identify the correct action

    Since it shows logs, it helps to see what the container is doing or any errors it has.
  3. Final Answer:

    Shows the logs of the specified container -> Option C
  4. Quick Check:

    docker logs = show container logs [OK]
Hint: Logs show container output; use docker logs CONTAINER [OK]
Common Mistakes:
  • Confusing logs with starting or deleting containers
  • Thinking it lists containers instead of showing logs
2. Which of these is the correct syntax to follow live logs of a container named webapp?
easy
A. docker logs webapp -p
B. docker logs -f webapp
C. docker logs --tail webapp
D. docker logs webapp --start

Solution

  1. Step 1: Identify the option to follow logs live

    The -f flag means "follow" and shows logs as they appear in real time.
  2. Step 2: Check the syntax correctness

    The correct syntax is docker logs -f webapp. Other options are invalid or incorrect.
  3. Final Answer:

    docker logs -f webapp -> Option B
  4. Quick Check:

    -f means follow logs live [OK]
Hint: Use -f to follow logs live as they update [OK]
Common Mistakes:
  • Using --tail without a number to follow logs
  • Adding invalid flags like --start or -p
  • Placing flags after container name incorrectly
3. What will be the output of the command docker logs --tail 3 mycontainer if the container's last 5 log lines are:
Line1
Line2
Line3
Line4
Line5
medium
A. Line3 Line4 Line5
B. Line1 Line2 Line3
C. Line4 Line5
D. Line1 Line2 Line3 Line4 Line5

Solution

  1. Step 1: Understand the --tail option

    The --tail 3 option shows only the last 3 lines of the logs.
  2. Step 2: Select the last 3 lines from the given logs

    The last 3 lines are Line3, Line4, and Line5.
  3. Final Answer:

    Line3 Line4 Line5 -> Option A
  4. Quick Check:

    --tail 3 shows last 3 lines [OK]
Hint: --tail N shows last N lines of logs [OK]
Common Mistakes:
  • Choosing first lines instead of last lines
  • Confusing --tail with -f
  • Expecting all logs instead of limited lines
4. You run docker logs -f myapp but see no output even though the app is running. What is the likely problem?
medium
A. You need to restart Docker daemon
B. The -f flag is not supported
C. Logs are disabled by default
D. The container name is incorrect or not running

Solution

  1. Step 1: Check container status and name

    If the container name is wrong or the container is stopped, no logs will appear.
  2. Step 2: Understand the -f flag behavior

    The -f flag follows logs live, but if no logs exist or container is not running, output is empty.
  3. Final Answer:

    The container name is incorrect or not running -> Option D
  4. Quick Check:

    No logs means container name or status issue [OK]
Hint: Check container name and running status first [OK]
Common Mistakes:
  • Assuming -f flag is unsupported
  • Thinking logs are disabled by default
  • Restarting Docker unnecessarily
5. You want to see only the last 10 lines of logs from a container named dbserver and keep watching new logs as they appear. Which command should you use?
hard
A. All of the above
B. docker logs -f --tail 10 dbserver
C. docker logs --tail=10 -f dbserver
D. docker logs --tail 10 -f dbserver

Solution

  1. Step 1: Understand combined options usage

    Both -f (follow) and --tail 10 (last 10 lines) can be combined in any order before the container name.
  2. Step 2: Check command syntax flexibility

    Docker accepts options in any order before the container name, so all listed commands are valid.
  3. Final Answer:

    All of the above -> Option A
  4. Quick Check:

    Options order flexible before container name [OK]
Hint: Options order flexible before container name [OK]
Common Mistakes:
  • Thinking options must be in fixed order
  • Placing options after container name
  • Using invalid flags or syntax
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