I think the Docker devs are conflicted on this subject.
On one hand, they have adopted compose into their api, and want you to use it to build out micro services, which leans towards an infra-as-code model.
But otoh, they have also adopted a project called tiny into their container api, which offers better handling of multi-process containers.
If you want to go hard core, there's ways you can run debian systemd or alpine's manager within docker.
I try to keep my process count minimal so a process manager is overkill for me. I just run with tiny enabled and use tmux for basic management.
I run a webserver, postgres db and bitcoin node in the same container all the time, with tor and ngrok tunnels. Works flawlessly.
reply