When I was a broke student and every penny counted, I would go to the dépanneur (corner store) and ask my guy for 1.18L beer bottles.
They were just the right size for storing chemicals, they came with caps, they were GREAT for pouring liquids (I wonder why...) and they cost me only the price of the deposit, so maybe 50 cents each. Internet wasn't as convenient back then, and shipping costs are proportional to volume, so I preferred sourcing my bottles locally. And it was surprisingly hard finding a dozen bottles, so beer was the way to go.
These bottles never got stained or dirty, they would clean perfectly, cost nothing, and were convenient. But, they could break.
Eventually, when I had a few more pennies, I made a big order at ULINE for HDPE bottles in gallon, 2L, and liter size to cover all my needs. HDPE can stain, but it doesn't break and it's much less heavy on my shelves.