Bird
Raised Fist0
Dockerdevops~20 mins

Blue-green deployment with containers in Docker - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Blue-Green Deployment Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Blue-Green Deployment Basics

In a blue-green deployment using containers, what is the main purpose of having two identical environments (blue and green)?

ATo test new features in the blue environment while the green environment is offline
BTo run two different versions of the application simultaneously for load balancing
CTo switch traffic between two identical environments to minimize downtime during updates
DTo deploy the application in blue for development and green for production permanently
Attempts:
2 left
💡 Hint

Think about how switching environments helps users experience no downtime.

💻 Command Output
intermediate
1:30remaining
Docker Command to Switch Traffic in Blue-Green Deployment

Given two running container sets named app-blue and app-green, which Docker command output indicates that the app-green containers are now receiving traffic after switching?

Docker
docker ps --filter "name=app-green" --format "{{.Names}}: {{.Status}}"
A
app-green-1: Up 5 minutes
app-green-2: Up 5 minutes
B
app-blue-1: Up 5 minutes
app-blue-2: Up 5 minutes
C
app-green-1: Exited (0) 2 minutes ago
app-green-2: Exited (0) 2 minutes ago
D
app-blue-1: Restarting (1) 10 seconds ago
app-blue-2: Restarting (1) 10 seconds ago
Attempts:
2 left
💡 Hint

Look for containers that are running and healthy.

🔀 Workflow
advanced
2:00remaining
Correct Sequence for Blue-Green Deployment with Docker Containers

Arrange the steps in the correct order to perform a blue-green deployment using Docker containers.

A1,2,3,4
B2,1,3,4
C1,3,2,4
D3,1,2,4
Attempts:
2 left
💡 Hint

Think about deploying first, then verifying, then switching traffic, then cleaning up.

❓ Troubleshoot
advanced
1:30remaining
Troubleshooting Traffic Not Switching in Blue-Green Deployment

After deploying the green environment and switching the load balancer to it, users still see the old version from the blue environment. What is the most likely cause?

AThe green containers failed health checks and were never marked ready by the load balancer
BThe blue containers were stopped before switching traffic
CThe DNS cache on user devices was cleared
DThe green containers are running but the load balancer configuration was not updated
Attempts:
2 left
💡 Hint

Consider what controls where user traffic is sent.

✅ Best Practice
expert
2:00remaining
Best Practice for Database Changes in Blue-Green Deployment

When performing a blue-green deployment involving containers, what is the best practice for handling database schema changes to avoid downtime and data loss?

AApply all schema changes directly to the production database before switching environments
BUse backward-compatible schema changes and deploy application versions that support both old and new schemas
CStop all database writes during deployment to prevent conflicts
DMaintain separate databases for blue and green environments and merge data after deployment
Attempts:
2 left
💡 Hint

Think about how to keep the app running smoothly during schema updates.

Practice

(1/5)
1. What is the main goal of a blue-green deployment when using containers?
easy
A. To reduce downtime by switching traffic between two identical environments
B. To increase the number of containers running simultaneously
C. To create backups of container images automatically
D. To monitor container resource usage in real-time

Solution

  1. Step 1: Understand blue-green deployment concept

    Blue-green deployment uses two identical environments (blue and green) to switch traffic smoothly.
  2. Step 2: Identify the main goal

    The main goal is to reduce downtime by switching user traffic from one environment to another without interruption.
  3. Final Answer:

    To reduce downtime by switching traffic between two identical environments -> Option A
  4. Quick Check:

    Blue-green deployment = reduce downtime [OK]
Hint: Blue-green means two environments for zero downtime [OK]
Common Mistakes:
  • Confusing blue-green with scaling containers
  • Thinking it creates backups automatically
  • Assuming it monitors resource usage
2. Which Docker command is used to create a new container from an image for the green environment in a blue-green deployment?
easy
A. docker stop green_container
B. docker run -d --name green_container myapp:latest
C. docker push green_container myapp:latest
D. docker build -t green_container myapp/

Solution

  1. Step 1: Identify command to create and start container

    The docker run command creates and starts a container from an image.
  2. Step 2: Match command to green environment container creation

    docker run -d --name green_container myapp:latest runs the container detached with the name green_container.
  3. Final Answer:

    docker run -d --name green_container myapp:latest -> Option B
  4. Quick Check:

    Run command creates container [OK]
Hint: Use 'docker run' to start new containers [OK]
Common Mistakes:
  • Using 'docker build' which builds images, not containers
  • Using 'docker push' which uploads images to registry
  • Using 'docker stop' which stops containers
3. Given the commands below, what will be the result after switching traffic from blue to green?
docker stop blue_container
docker start green_container
medium
A. The green environment stops, and the blue environment starts
B. Both blue and green environments run simultaneously
C. The blue environment stops, and the green environment starts serving traffic
D. No change occurs because containers are not restarted

Solution

  1. Step 1: Analyze the commands

    docker stop blue_container stops the blue container. docker start green_container starts the green container.
  2. Step 2: Understand traffic switch effect

    Stopping blue and starting green means traffic moves from blue to green environment.
  3. Final Answer:

    The blue environment stops, and the green environment starts serving traffic -> Option C
  4. Quick Check:

    Stop blue + start green = traffic switch [OK]
Hint: Stopping blue and starting green switches traffic [OK]
Common Mistakes:
  • Assuming both run simultaneously after stop command
  • Confusing start and stop commands
  • Thinking no change happens without redeploy
4. You tried to switch traffic by running docker stop blue_container and docker start green_container, but users still reach the blue environment. What is the most likely cause?
medium
A. The load balancer or proxy is still routing traffic to the blue environment
B. The green container failed to start due to image errors
C. Docker daemon is not running on the host machine
D. The blue container was never running initially

Solution

  1. Step 1: Check container states

    Stopping blue_container and starting green_container should switch environments if containers run properly.
  2. Step 2: Identify traffic routing cause

    If users still reach blue, likely the load balancer or proxy still routes traffic to blue environment IP or port.
  3. Final Answer:

    The load balancer or proxy is still routing traffic to the blue environment -> Option A
  4. Quick Check:

    Traffic routing depends on load balancer config [OK]
Hint: Check load balancer routes after container switch [OK]
Common Mistakes:
  • Assuming container start/stop alone switches traffic
  • Ignoring load balancer or proxy configuration
  • Thinking Docker daemon status causes routing issues
5. You want to automate blue-green deployment using Docker Compose. Which approach correctly switches traffic between blue and green services?
hard
A. Run both blue and green services with the same name and let Docker handle traffic automatically
B. Stop Docker Compose and restart it with a new image tag without changing service names
C. Build images with different tags but deploy only the blue service always
D. Use two Compose files with different service names and update the reverse proxy to point to the active service

Solution

  1. Step 1: Understand Docker Compose blue-green setup

    Using two Compose files or service names (blue and green) allows running both environments side by side.
  2. Step 2: Switch traffic by updating reverse proxy

    Updating the reverse proxy or load balancer to point to the active service switches traffic without downtime.
  3. Final Answer:

    Use two Compose files with different service names and update the reverse proxy to point to the active service -> Option D
  4. Quick Check:

    Two services + proxy update = blue-green switch [OK]
Hint: Switch proxy target between blue and green services [OK]
Common Mistakes:
  • Using same service names causing conflicts
  • Not updating proxy or load balancer
  • Deploying only one service without switching
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