Exercise 1: Three Problems Docker Compose Doesn't Solve Across Multiple Hosts — Possible Solution ==================================================================== 1. NO MULTI-HOST SCHEDULING. Docker Compose has no concept of multiple physical machines at all -- it starts and manages containers on the single host it's run on. If an organization has ten servers available, Compose has no built-in way to decide which containers should run on which of those ten machines, or to balance workload across them at all. That decision-making is entirely absent from Compose's design. 2. NO AUTOMATIC FAILOVER IF A HOST DIES. If the single machine running a Compose-managed set of containers goes down entirely, every container on it goes down with it, and nothing automatically detects this and relaunches those containers somewhere else. Recovering requires manual intervention -- provisioning a replacement host and restarting Compose there by hand. 3. NO FLEET-WIDE ROLLING UPDATES. Deploying a new version of an application across many hosts running Compose independently requires manually updating and restarting each host's own Compose setup one at a time (or via separate custom scripting) -- there's no built-in mechanism for coordinating a controlled, gradual rollout (some instances on the old version, some on the new, automatically shifting over) across a fleet the way this chapter describes Kubernetes providing. (A fourth valid answer: no cross-host service discovery -- containers on different hosts running Compose independently have no built-in way to find and communicate with each other the way containers within a single Kubernetes cluster can via built-in DNS-based service discovery.) WHY THIS WORKS AS AN ANSWER ------------------------------ Each of these three problems is named directly in the chapter's own "Why Docker Alone Isn't Enough at Scale" section -- multi-host scheduling, automatic failover, and fleet-wide rolling updates are all explicitly listed as gaps Compose doesn't fill, which Kubernetes was specifically built to close.