I had this with a dog I used to walk. It took me a year to train him (bearing in mind his owner didn't do any training - so the fact that you are dealing with your own dog might help to make it happen faster!). He was about 12 months old also. It's a tough age. But whatever you are consistent with now should become a dream once he's 2+ years old.
Basically, it's just about not giving them the opportunity to run over to dogs - and also teaching them that they still need to respond to recall / their name (both) and basically do as you ask, no matter if they're in an empty field, around a dog, around a squirrel, etc.
You can do that on lead. Walking past dogs at a distance, pipping the whistle (more quietly than you would at a further range), and heavily rewarding when they pay attention to you.
It's great if you can go to an area with plenty of dogs walking by too, like a village centre, town, city, park, whatever. Over time, your dog will learn to just ignore / be unbothered by the dogs around them.
You then move up to using a long line in such areas once your dog is reliable on a shorter lead (as in, they respond to the whistle / their name etc. every time and are not straining constantly to greet other dogs).
It just takes time and consistency.
It also helps if you make yourself very interesting. Dummy toys and balls and hide and seek games, etc. Things that cause your dog to think you're amazing and therefore be less inclined to run up to other dogs :) But not in a frantic way. Just in a fun "I love playing and bonding with my dog" kind of way!