You've answered your question: your dog has dominance issues.
In my experience, this can turn your dog into a dangerous dog.
You mention he goes to the park once a week and behaves fine. That's also a problem. Your dog lacks exercise and training. He has too much energy and doesn't know what to do with it. On top of that, it seems he lacks leadership. Labs are very active dogs and can go for miles. It's important you research the breed to understand what your dog needs:
Here are a few tips:
There are several line of thoughts behind dogs "bad behaviour".
I have had dogs my whole life including rescues showing lots of unwanted behaviours.
My attitude towards dog has always been the same: they are pack animals and need some sort of leadership. Even if people and dog behaviourist have new thoughts on the matter.
Your choices are:
1) Ignore a bad behaviour, show no interest or emotion once that behaviour occurs(for mild case)
2) recognise that the behaviour is bad enough that it needs a "negative" intervention. Basically disagree with the dog and use something simple like:"no!"
3) is the same as 2) but most effective of all: Start with 2) and then use what's called behaviour replacement therapy. Basically say "no", I disagree and then replace that behaviour by a command like"sit" followed by a reward.
You need to decide what's what and how you wish your dog to behave. Positive reinforcement is always best(the third option), however not always possible. This where training comes in.
All of the basic commands(sit, stay, down...). This will give you and your dog structure and excellent communication. It's also very rewarding for both of you and will increase your bound. Be sensitive and start small, in a room your dog is comfortable in with few distractions and build from there.
To train a dog, it's like 3). Patience is required. You never force a dog into a behaviour, you let him work it out. Wait for the behaviour and then reward it. There are plenty of books available to help you. Your dog needs a leader. If he doesn't have one, he will be forced to lead and let's face it, being a leader can be stressful and difficult. If a dog hasn't had another older dog show him what to do, he will make it up and it generally turns to aggression.
Dogs have always worked with humans. Historically, it's thought that wolves got closer to humans to get an easier meal. In exchange for food and security, they guarded, hunted, herded and so on. These days, they don't work and find it hard to have a purpose. You need to make your dog work for rewards.
Rewards is not just food but it is a big part of training(adjust your dogs diet to compensate for treats) but also hugs, cuddles, toys, whatever is going to enrich their life has to be earned and not given for free.
This is a book used by many trainers:
I would also read articles from Cesar Milan the ultimate dog whisperer.
As a side note, it would be useful to visit your vet to eliminate any medical conditions that could trigger this behaviour first.