There was a saying in the place where I grew up - which my mother used to quote often - "An angel to the town, but a devil at home" To the town, I was an 'angel' - always helping out, always there when something was needed to be done. But never at home, when my mother needed me!
Being part of a community automatically meant you had to earn your place. Helping out was natural - you didn't ask if help was needed, you just helped.
Which is what I did - helped in festivals, helped in school events, helped in cleaning streets. Joined the Boy Scouts and did more helping ...
I earned my mother's ire at that time - especially when she wanted me to do something at home. But I remember justifying, "I do it not because they need my help. I do it because I have something to offer, something I have the capacity to do" - I won't say here what her response was ... :-)
Which, after all these years, I realize lies at the core of volunteering: to show you are able to and you can do what needs to be done.
Volunteering is not about charity. Its about being able to help those in need simply because you have that need and want to share it. Therefore, do volunteer - not for charity - but for the ability, the skill you can demonstrate. To offer something that is needed - besides helping out in a situation of need, it also makes you feel good!!