I just used an old shampoo bottle (housemates still use it). I funnelled in a tub of sodium bicarbonate and added water until it was just runny. 300ml bottle lasts me ~8 months, using about 3 times every 2 weeks.
Cost to me: about £3 / year.
Hair quality: great. I used to pretend I didn't care, but I do and this works and I'm never going back to shampoo.
They're ¢99 at my grocery store and as long as they're made out of PET, they'll be resistent to baking soda.
[0]: http://amzn.com/B007OM9W2E