Jenkins pipeline using docker on existing slaves
This is a very good approach. In fact the way to do that is documented under jenkins docs under Using multiple containers
section.
In each stage you basically spin up a container with the necessary tools available and you can use a volume to presist output from the stage into the workspace so that otherstages can use it.