📖 Scenario: You are a system administrator who wants to monitor Docker container events in real-time. This helps you track when containers start, stop, or change state, which is important for managing your applications.
🎯 Goal: Build a simple script that listens to Docker events and filters them to show only container start and stop events.
📋 What You'll Learn
Use the docker events command to listen to Docker events.
Filter events to show only start and stop container events.
Display the event type and container ID for each event.
💡 Why This Matters
🌍 Real World
Monitoring Docker events helps system administrators track container lifecycle changes and troubleshoot issues quickly.
💼 Career
Understanding Docker event monitoring is useful for DevOps engineers and system administrators managing containerized applications.
Progress0 / 4 steps
1
Set up Docker event listening command
Write a command to listen to Docker events using docker events and save it in a variable called event_command.
Docker
Hint
Use a string variable to store the command docker events.
2
Add filters for start and stop events
Add a variable called filters that contains the filter options to show only start and stop events for containers. Use the Docker CLI filter syntax: --filter 'event=start' --filter 'event=stop'.
Docker
Hint
Filters must be a string with two filter options for start and stop events.
3
Combine command and filters
Create a variable called full_command that combines event_command and filters with a space between them.
Docker
Hint
Use string concatenation with a space to combine the command and filters.
4
Run the command and display events
Write code to run full_command using subprocess.Popen to capture output line by line. For each line, print only the event type and container ID. Use print(event_type, container_id). Assume event lines contain the words start or stop and the container ID is the word after container.
Docker
Hint
Use subprocess.Popen with shell=True and text=True to read output line by line.
Split each line and find the event type and container ID by checking words.
Practice
(1/5)
1. What does the docker events command do?
easy
A. Displays the Docker container logs
B. Lists all Docker images on the system
C. Shows real-time Docker activity and events
D. Removes unused Docker volumes
Solution
Step 1: Understand the purpose of docker events
This command streams real-time events from the Docker daemon, showing activities like container start, stop, create, etc.
Step 2: Compare with other Docker commands
Other options like listing images, showing logs, or removing volumes do not relate to event monitoring.
Final Answer:
Shows real-time Docker activity and events -> Option C
Quick Check:
docker events = real-time Docker activity [OK]
Hint: Remember: events = live Docker activity stream [OK]
Common Mistakes:
Confusing events with logs
Thinking it lists images
Assuming it cleans resources
2. Which of the following is the correct syntax to monitor Docker events for a specific container with ID abc123?
easy
A. docker logs --events abc123
B. docker events --filter container=abc123
C. docker monitor --container abc123
D. docker events -c abc123
Solution
Step 1: Identify the correct filter syntax for docker events
The correct filter flag is --filter or -f with key=value pairs, e.g., container=abc123.
Step 2: Check other options for correctness
Options A, B, and C use invalid commands or flags not supported by docker events.
Final Answer:
docker events --filter container=abc123 -> Option B
Quick Check:
Use --filter container=ID to monitor specific container events [OK]
Hint: Use --filter container=ID to target container events [OK]
Common Mistakes:
Using wrong flags like -c
Confusing docker logs with docker events
Using non-existent commands like docker monitor
3. What will be the output of the command docker events --filter event=start --filter container=myapp when the container myapp starts?
medium
A. A real-time event line showing the container myapp started
B. A list of all containers currently running
C. An error saying invalid filter syntax
D. No output until the container stops
Solution
Step 1: Understand the filters used
The command filters events to show only start events for the container named myapp.
Step 2: Predict output when container starts
When myapp starts, the command outputs a line describing this event in real-time.
Final Answer:
A real-time event line showing the container myapp started -> Option A
Quick Check:
Filtered events show matching container start events [OK]
Hint: Filters show only matching events live [OK]
Common Mistakes:
Expecting a list of containers instead of events
Thinking filters cause errors
Assuming output only on container stop
4. You run docker events --filter event=stop --filter container=webapp but see no output when the container webapp stops. What is the most likely cause?
medium
A. The docker daemon is not running
B. Docker events do not capture stop events
C. The command syntax is invalid
D. The container name is incorrect or misspelled
Solution
Step 1: Verify container name correctness
If the container name is wrong, no matching events will appear even if the container stops.
Step 2: Check other possibilities
The docker daemon must be running for events; syntax is correct; stop events are captured by docker events.
Final Answer:
The container name is incorrect or misspelled -> Option D
Quick Check:
Correct container name needed for event filtering [OK]
Hint: Check container name spelling when no events appear [OK]
Common Mistakes:
Assuming docker events miss stop events
Ignoring daemon status
Thinking syntax is wrong without checking name
5. You want to monitor Docker events for containers with label env=production and only see start and die events. Which command achieves this?
hard
A. docker events --filter label=env=production --filter event=start --filter event=die
B. docker events --filter label=env=production --filter event=start,die
C. docker events --filter label=env=production --filter event=start --filter event=stop
D. docker events --filter env=production --filter event=start --filter event=die
Solution
Step 1: Use multiple --filter flags for each event
Docker events supports multiple filters; to filter multiple events, repeat the --filter event= flag for each event.
Step 2: Use correct label filter syntax
The label filter requires label=key=value format, so label=env=production is correct.