What drives me insane about Docker is the user interface it exposes. There are atleast 3 or 4 ways to do something. API is terrible (ports - 127.0.0.1:5000:5000 is confusing as fuck design). Volumes is a total mess, networking is worse and as a veteran user of docker for over 4 years on a daily basis, I still get confused about everything Docker is and is not. It is one tool that makes me feel like a moron.
While some parts of Docker are far from elegance, I find the isolation of containers from the host by default a beneficial feature, and part of the very point of containers.
The syntax of port mapping is unfortunate and unergonomic, but I suppose it just follows the syntax of port forwarding in OpenSSH :-/
For a number of improvements / different trade-offs, see Podman. But does it have a neat client for macOS, which many developers unfortunately run? (I don't.)
> I find the isolation of containers from the host by default a beneficial feature, and part of the very point of containers.
There are some valid usecases during development - run some services on the host, while running the rest in containers. Containers doesn't need to know if it's connecting to the host or other containers. Just pass a proper URL, and services must blindly connect to it.