I’m not quite sure as to why this happens but maybe those containers have a restart policy which will make Docker to run them everytime they’re not there?
Anyhow, try this:
If youre containers are running, before killing them, try this:
docker update --restart=no container1 container2 ....
Then reboot and see if those containers are still running.