Bird
Raised Fist0
Dockerdevops~20 mins

Docker logging drivers - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Docker Logging Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of Docker container logs with json-file driver
You run a Docker container with the default logging driver (json-file). What will be the output of docker logs mycontainer if the container prints Hello World once and then exits?
Docker
docker run --name mycontainer alpine echo Hello World
docker logs mycontainer
A
Error: No logs available
B
Hello World
C
Container started
Hello World
Container exited
DHello World (with JSON metadata lines)
Attempts:
2 left
💡 Hint
The default json-file driver stores logs in JSON but docker logs shows only the message content.
🧠 Conceptual
intermediate
1:30remaining
Understanding Docker logging driver options
Which Docker logging driver is designed to send container logs directly to the systemd journal?
Ajournald
Bfluentd
Csyslog
Djson-file
Attempts:
2 left
💡 Hint
Systemd journal is a logging system used by many Linux distributions.
❓ Troubleshoot
advanced
2:30remaining
Diagnosing Docker logging driver misconfiguration
You configured a Docker container to use the 'fluentd' logging driver but see no logs in your Fluentd server. Which of the following is the most likely cause?
AThe container logs are too large to send
BThe container is using the default json-file driver instead
CThe Fluentd server is not reachable at the configured address
DDocker does not support the fluentd driver
Attempts:
2 left
💡 Hint
Check network connectivity and configuration between Docker and Fluentd.
🔀 Workflow
advanced
2:30remaining
Configuring Docker container with syslog logging driver
You want to run a Docker container that sends logs to a remote syslog server at 192.168.1.100 on port 514 using UDP. Which command correctly sets this up?
Adocker run --log-driver=json-file --log-opt syslog-address=udp://192.168.1.100:514 alpine echo test
Bdocker run --log-driver=fluentd --log-opt address=udp://192.168.1.100:514 alpine echo test
Cdocker run --log-driver=syslog --log-opt syslog-address=tcp://192.168.1.100:514 alpine echo test
Ddocker run --log-driver=syslog --log-opt syslog-address=udp://192.168.1.100:514 alpine echo test
Attempts:
2 left
💡 Hint
The syslog logging driver uses the option 'syslog-address' with protocol and IP.
✅ Best Practice
expert
3:00remaining
Choosing the best logging driver for high-volume production containers
For a high-volume production environment where you want centralized log management with minimal performance impact on containers, which Docker logging driver is generally recommended?
Afluentd
Bjson-file
Cnone
Dlocal
Attempts:
2 left
💡 Hint
Centralized log management often uses external log collectors.

Practice

(1/5)
1. What is the default Docker logging driver used if none is specified?
easy
A. none
B. syslog
C. journald
D. json-file

Solution

  1. Step 1: Understand Docker default logging behavior

    Docker uses a default logging driver to store container logs unless changed.
  2. Step 2: Identify the default driver

    The default driver is json-file, which stores logs as JSON files on the host.
  3. Final Answer:

    json-file -> Option D
  4. Quick Check:

    Default logging driver = json-file [OK]
Hint: Default is json-file unless changed in daemon config [OK]
Common Mistakes:
  • Choosing syslog as default
  • Thinking none disables logging by default
  • Confusing journald with default
2. Which of the following is the correct syntax to set the logging driver to syslog when running a container?
easy
A. docker run --log-driver=syslog myimage
B. docker run --logging=syslog myimage
C. docker run --logdriver=syslog myimage
D. docker run --log syslog myimage

Solution

  1. Step 1: Recall Docker run command options for logging

    The correct flag to specify logging driver is --log-driver.
  2. Step 2: Match the correct syntax

    docker run --log-driver=syslog myimage uses --log-driver=syslog, which is the correct syntax.
  3. Final Answer:

    docker run --log-driver=syslog myimage -> Option A
  4. Quick Check:

    Use --log-driver to set logging driver [OK]
Hint: Use --log-driver=driver_name to set logging driver [OK]
Common Mistakes:
  • Using --logging instead of --log-driver
  • Missing the dash in --log-driver
  • Using --log instead of --log-driver
3. Given the command:
docker run --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3 alpine echo hello
What will happen when the container logs exceed 30 MB?
medium
A. Logs will grow indefinitely without rotation
B. Logs will be deleted immediately after 30 MB
C. Logs will be rotated and only the latest 3 files of 10 MB each are kept
D. Container will stop running when logs exceed 30 MB

Solution

  1. Step 1: Understand log options max-size and max-file

    max-size=10m means each log file max is 10 MB; max-file=3 means keep 3 rotated files.
  2. Step 2: Calculate total log size before rotation

    3 files x 10 MB each = 30 MB total before old logs are deleted.
  3. Final Answer:

    Logs will be rotated and only the latest 3 files of 10 MB each are kept -> Option C
  4. Quick Check:

    max-size and max-file control log rotation [OK]
Hint: max-size x max-file = total log size before rotation [OK]
Common Mistakes:
  • Thinking logs delete immediately at 30 MB
  • Assuming container stops on log size limit
  • Ignoring max-file setting
4. You run a container with:
docker run --log-driver=none nginx
But you still see logs when running docker logs. What is the likely cause?
medium
A. The --log-driver=none flag is invalid and ignored
B. The container was started before the logging driver was set to none
C. Docker logs command shows logs from the host system
D. The container image nginx forces logging regardless of driver

Solution

  1. Step 1: Understand effect of --log-driver=none

    This disables logging for the container started with this flag.
  2. Step 2: Consider container start timing

    If the container was started before setting the flag, old logs remain accessible.
  3. Final Answer:

    The container was started before the logging driver was set to none -> Option B
  4. Quick Check:

    Logging driver applies only at container start [OK]
Hint: Logging driver must be set when container starts [OK]
Common Mistakes:
  • Assuming --log-driver=none is invalid
  • Thinking docker logs shows host logs
  • Believing image controls logging driver
5. You want to configure Docker daemon to use the journald logging driver by default and limit log file size to 5 MB with 2 rotated files. Which daemon.json configuration is correct?
hard
A. { "log-driver": "journald", "log-opts": { "max-size": "5m", "max-file": "2" } }
B. { "logging-driver": "journald", "logging-opts": { "max-size": "5m", "max-file": "2" } }
C. { "log-driver": "journald", "log-opts": { "max-size": 5, "max-file": 2 } }
D. { "log-driver": "journald", "log-opts": { "max-size": "5MB", "max-file": "2" } }

Solution

  1. Step 1: Identify correct keys in daemon.json

    The keys are "log-driver" and "log-opts" (not "logging-driver" or "logging-opts").
  2. Step 2: Check value formats for options

    max-size must be a string with units like "5m" (not number or "5MB" which is invalid).
  3. Final Answer:

    { "log-driver": "journald", "log-opts": { "max-size": "5m", "max-file": "2" } } -> Option A
  4. Quick Check:

    Use "log-driver" and string values with units [OK]
Hint: Use "log-driver" and string sizes like "5m" in daemon.json [OK]
Common Mistakes:
  • Using wrong keys like logging-driver
  • Using numeric values without units
  • Using invalid units like MB instead of m
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