Hi,
1) For what is docker, it would be easier to
check official doc or some videos. Here, it is used to use a specific version of PX4 (you may have another version depending if you are already working with drones), and it is also a recipe to make sure that all dependencies are installed. Another advantage is that it doesn't screw up your catkin workspace to only try it.
2) GPU is used here for the simulator, to run smoothly, but it is not required.
3) It is a common approach to spawn a robot in a gazebo simulation. You may find `spawn_tutlebot.launch` in other projects. After launching the simulator, you may call `spawn_drone.launch` to create the simulated robot in your simulated environment.
cheers,
Mathieu