Docker pulls more than it needs to

There oughtta be a way to make repeated docker pulls smarter. Adding a single byte to a single layer invalidates it and every following layer, even if every other file in those layers is byte-for-byte identical. For anyone with many dependencies (looking at you, ROS!), it could mean gigabytes of unrelated files dragged along with your small change.

And you'd better hope you're not pulling on a robot out on the farm, or a device at a client's warehouse at dial-up speed. We can do better.

Adding apt install vim shouldn't cause every other dependency to get pulled again. If your copy of Docker knew about files rather than just layers, it could grab only the changes. (Did you know that builds with clang are pretty reproducible nowadays? That's two separate builds of Doom, byte for byte identical, shared)