DS is 2yrs 7months and is generally a good boy with everyone, bar the usual toddler squabbles.
I am told he is a delight at nursery (although I suspect they always say that unless your child is like Damien from the film!), DH has no issues with him when he takes him out.
However, with me it's a different story and he will not stop pushing the boundaries (and again I know that this means he feels safe and loved etc, so it's a good thing) and I end up being shouty mum to get him to do anything. 
I've tried reasoning, 123 magic, time outs, distractions; but nothing works. The problem then becomes that I get annoyed, he gets worked up and it becomes a cycle.
DH has noticed and commented on this and got his head in his hands to play with because he only sees the "good" bits of DS as DS does miss his dad when DH is at work; DH does the bath/bed time, so only sees him for 1-2 hours a day when DS is tired or at weekends when we do "fun" stuff as a family so DS behaves. I get the joy of wrestling him round a supermarket (shopping now being delivered so that's sorted!) or trying to get to nursery when DS won't co-operate.
So, how do I stop shouting, and how do I stop feeling resentful that DS doesn't listen to me?