This is only necessary because docker is steaming pile of hot garbage. It’s the leakiest of leaky abstractions, and a hoarder to boot.
To this day I don’t understand what problems the client/server model solved, and why it was worth all the problems it created.
Remember, containers are just Linux cgroups, there is nothing “special” about a container that requires a client/server.