Try Pyrex or Corningware containers. Pyrex is glass designed to withstand high temperatures, so it's less breakable than regular glass. Corningware is ceramic and also very hard to break. The lids are flexible plastic similar to the ones on plastic containers, but at least it's less plastic touching your food. (There are also ones with Pyrex lids that have a knob on top; if you choose a rectangular container rather than a round one, you can use an elastic band around the knob, around the container, then back around the knob to hold the lid on. This is what I do with my larger containers when taking them to potlucks.) The only downside is that they're kind of heavy.
I carry my juice for my lunch at work in glass bottles that came from Tropicana juices 4 years ago. (I believe they now use plastic bottles only.) I just wash them over and over again. I used this same style of bottle for my juice when I was in first grade, so it's been 5 years total, and I've only ever broken one of them, when I dropped my metal lunchbox on the sidewalk. After that my mom started wrapping the bottle in a cloth napkin (and then I didn't need to use a paper napkin at school!), and as an adult I use a cloth insulated bag.
For over a year when my son was smaller, we packed his lunch for childcare in reused glass baby-food jars. He also has a cloth insulated bag, but the jars clanked together inside it, and none of them ever broke. This is despite my occasionally smacking the bag into something as I struggled onto and off of public transit carrying a baby and a bunch of gear!
So I think glass is a fine type of container, except for a child who tends to be really rough with the lunchbox/bag.
We have some random utensils that don't match our set, which we pack with lunches. I also pack a cloth napkin and put it in the wash once a week, or sooner if it gets really messy.