Docker in Production: A retort
Docker founder here.<p>I keep reading articles stating that &quot;the Docker API changes with every release&quot;, but the assertion is never backed by any specific examples. Has anyone here encountered an actual breaking change? If so, I would appreciate you sharing the specifics so we can fix it.<p>Docker is by no means perfect:<p>- I remember that in 1.10 the switch to content-addressed registries meant that older clients could not pull by digest (but all other commands, and even non-pinned pull, still worked). This was not an accidental breaking change: it was the result of a difficult tradeoff. In the end we decided that the benefits of the new content-addressed model outweighed the inconvenience. To guide our decision we used data from Docker Hub to assess how many clients would be affected. I forget the exact number but it was a very small minority.<p>- And in 1.12 we got bitten by a change in how Go 1.6 processes HTTP headers (it became more strict and thus rejected headers from older clients). That was quite simply a screwup on our part.<p>So we&#x27;ve had our share of screw-ups, no question. But lately I&#x27;ve been reading the &quot;breaks at every release&quot; meme more and more. Based on the evidence I have, it seems incredibly disconnected from reality.<p>What am I missing?