Problem with Fluids Tespassing Obstacles (bottles, cauldrons)
Your resolution is too low. Try setting it to at least 150 but preferably more.

Yes, this will mean longer simulation times, but that's the catch with all simulations!

The resolution determines the size of the grid elements used by the simulation engine: your elements are so big (you can see the big blocks in your screenshots) that the walls are too thin for the fluid to notice, and that the hole is too narrow for the fluid to pass through!



Edit (after seeing your file): how to fix the obstacle

I forgot about this! Your obstacle should be solid in the Mesh data: this means that your flask must have the solidify modifier applied, not in the stack! I suggest doing this:


Set up (as you've done) the bottle, with the animation data and everything. 
Duplicate the bottle. The original bottle will be use for rendering, the copy ONLY for simulation.
On the original bottle, remove Fluid physics, and remove the solidify modifier
On the new copied bottle, use a negative value for the solidify thickness (worked for me with -0.14) and apply the solidify modifier.
You can restrict the bottle visibility, and also you should remove it from the render layers


Run the simulation.
Restrict also the normal visibility ("eye" icon) of the duplicated bottle
Take care of the appearance of the "rendered" original bottle. For example a solidify with thickness = -0.07 works well.






PS: As regards your glass material: I've created a question &amp; answer here: My glass material isn&#39;t transparent