Docker-compose simplifies deploying complex applications with containers, but falls short by not providing high-level abstraction for concepts like SQL databases, service discovery, and resource management. The tool allows for specifying groups of containers working together, but it breaks the standardization that containers aim to achieve. This results in complex docker-compose files, like the one required for Pihole, which involves setting up ports, environment variables, and volumes. The main issues revolve around reverse HTTP proxies, redundant servers, and databases. To address these problems, the author introduces a solution involving semantics to define container types and standard interfaces, proposing a new container runtime called Tealok.
https://blog.tealok.tech/post/docker-compose-isnt-enough/