What’s the age, gender, and obedience level of your dog? My female German Shepherd had the same problem. It sounds like your dog wants to dominate the shy dog. I suggest bringing treats with you and putting the dog on a slip collar (choking is not what the collar is for) and finding the offended dog. When your dog acts out (growls) at the other dog, put him in a down position and give him a firm “no”. If the other dog is curious, he may come up to smell and lick your dog, make sure you have good control. When he/she is calm, feed him a treat or two. Also, your dog may nip at you, mine did, and that’s not acceptable either. If you think your dog is going to bite, just hold his/her muzzle so nobody gets nipped. It’s just a way to show that the aggressiveness and dominant behavior towards that dog is not acceptable. Since we don’t know the history of your dog, it’s difficult to say exactly what is going on. It’s probably the safest way (for the shy dog) to introduce your dog and correct his/her behavior. If it works, watch them interact for about 20-30 minutes to make sure the other dog is a playmate and not a chew toy to dominate. German Shepherds are smart and know when you are not watching them.
Eventually, you want the dog to obey your commands because that is what they are supposed to do, not because you are a treat dispenser. So depending on the age of your dog, you may not want to use the treats. If there are other dogs around, they may also want a treat and even the nicest dog can become food aggressive and you'll have more than just a problem with your dog.
Especially if your dog is a puppy (< 1 year), growling and barking is a way for the puppy to entice the other dog to play. I now have a 10 week old puppy and that’s how she gets other dogs to play with her. I can barely tell the difference; however the other dogs know.
German Shepherd owner for 14 years.