FROM Debian
CMD apt-get install thing
CMD curl blabla/install.sh
Pretty much converts to:
aws-cli ec2 launch-instance
ssh user@server apt-get install thing
ssh user@server curl blabla/install.sh
In general, everytime you dispense of a high level abstraction, the solution is not to replicate the high level abstraction, but to build directly at a lower level abstraction.
If you want to replace burgers, just buy a slab of meat and put it in the fire or bake your own bread. You don't need to make preservants and buy artificial sweeteners, etc...
Since virtualization has so many usecases, it's not possible to list all of the ways to do the thing without containerization (either with traditional virtualization or no virtualization at all), but be assured, you can do it, there's nothing special about containers, it's just another way to do things that you can choose not to use at all.