You can keep out of date meds to a minimum by always asking for the longest use by date, and working out carefully how much you need. If you don't have many animals, then ask the vet to decant you enough doses for the stock you have - most vets keep an opened bottle of whatever for smaller breeders. Meds are expensive to manufacture and to buy and dispose of so keeping waste to a minimum is worth doing.
For needles, jam jar or sharps box - you can buy them online or from the vet - and negotiate with your vet a price for them to take them. They have to pay to get their sharps disposed of, so expect to pay something. Ask as well if they will take any out of date meds/pour-ons etc. Don't put them in domestic rubbish.
If you haven't bought your sharps and meds from the vet, then you can't expect them to take them for disposal.