I too would encourage you to ask the optometrist that you are interested in if they wouldn't mind having you work rather than volunteer. If they are opposed to having you work, you could always ask them to let you volunteer and then get a side job like you said earlier.
When I first looked for a shadowing experience, I too was just finishing my first year of undergrad and had NO experience whatsoever in the field, let alone the medical field, so I wasn't too sure what I would find as far as a job for the summer. I also knew I needed to make money that summer and could not do a volunteer position even if I had the opportunity. I also was very opposed to working in retail or food services as per my first job experience the summer before

. I didn't have any optometrists that I knew so I had no where to start as far as asking for open positions, so I decided to grab the Yellowbook and call all the optometrists in my area. I came up with a list of about ten optometrists, and it seemed like each one I called, they either weren't interested, or would only offer me a few hours of shadowing a week. I was about to give up hope but decided to make one more call, and I am so glad I did.
The last call I made (which was optometrist office #10) the person that answered the phone actually was about to go off to optometry school and was excited that I called because I was following in her same footsteps. She happily passed my information along to the head optometrist of the practice and the rest is history. I worked there for two summers and one winter break (my school has a little over a month long winter break).
I gained so much invaluable experience that I would not trade for anything. I would say, even if the optometrist you have in mind does not decide to pay you, you should search around as much as you can to find one that will and then use volunteering + a side job as your second option.