Rather long rant that I think undervalues the convenience Docker provides in deploying programs in languages that don't make it easy to create a single, statically linked binary, but it links to lots of discussion about the pros and cons of docker.
I think the better criticism of Docker is that it is monolithic and complicated, and probably solutions like bubblewrap, runC, and Podman for managing containers or deploying simple apps are better.
I've spent several weeks diving into the devops world for a project I'm working on. I had originally thought I'd deploy everything -- infrastructure like smtp and nginx reverse proxy as well as custom or replicated apps -- in docker containers, but have found a combination of configuring sever infrastructure with Ansible and using docker only for the apps proper to be a much better approach. This article by Matt Jaynes rings true to my experience so far.