Docker automatically upgrades if you tell it to by specifying “latest” or not specifying a version number. But it only upgrades if you issue the pull command or the compose up command. There are ways to start without a pull like using start or restart. So yes, there was warning and something you did actively told it to upgrade.
And it’s really bad practice to update any software without testing, especially between breaking/major version numbers.
Finally, it’s not uncommon for a platform to release its update and then the plugins or addons to follow. Especially with major updates that require lots of testing before release. This allows plugin/add-on makers to fully test their software with the release version of the platform rather than all of the plugin makers having to wait for one that may be lagging behind.
To get sorted to the top of the lists for biggest discount. To claim bigger losses in copyright infringement cases. And to increase the perceived immediacy to buy it to get a good deal to take advantage of impulse buying whereas if they have time to think about it they may not buy it at all. Plus rich people don’t care how much something costs, so you’ll get a few of them here and there buying it at full price.