You can use more or less any container to grow plants in, with the exception of containers that have contained chemicals. The containers you choose will depend on the space you have available, but try to collect a wide range of sizes and depths to accommodate different crops. Many plants can grow in surprisingly small containers, as the wonderful Willem van Cotthem demonstrates with small vegetables grown in plastic water bottles, so don’t assume that you can’t grow tomatoes because you only have a window sill.
Other plants, like cabbages, will need a large pot to grow properly. Carrots will need a deeper pot than parsley, which needs hardly any depth at all.
The best advice I’ve even been given is to think about utilising vertical space. If you have a 1m square balcony, you can triple your growing space by planting up. Attach string to lightweight containers such as yoghurt pots and plastic bottles to create a hanging edible garden. Just remember to make a small hole in the bottom of your containers for drainage. The Urban Organic Gardener has a great example of this:
If the sides of your balcony are brick walls rather than metal bars, and attaching containers to them is more of an issue, think about attaching a trellis, or using objects like ladders and old shelving to utilise height instead. Don’t forget that the open part of the balcony can also be used, for example by attaching string or wire vertically, and using it to grow climbers such as runner beans, as the author of Balcony Greens demonstrates:
Other materials you can use to grow in include old cooking pots, sinks, tyres, old drawers, baskets and wooden boxes (line these with a plastic bin bag with a few holes cut into it). I was lucky enough to find a toilet cistern in a skip, which fits perfectly on a window sill in my patio.