How to get a flexible tube to follow a curved path?
One solution is not to use a cyclinder, and use a curve instead.

Add a bezeier circle (add-> curve-> circle) this will determine the diameter of your tube:



Then add a curve and create with it the shape youi want your tube to follow:



Set the circle as Bevel object for the curve:

 

Then you can animate the bevel factor start and end factors to meet your needs: