I copied this straight from Smogon, I hope it helps:
Dragonite is so versatile that one can forget about finding a surefire counter at the outset. However, fast Ground-types and bulky Steel-types, such as Jirachi, Landorus, and Scizor, are fairly good checks and revenge killers, particularly to the Parashuffler set. The Parashuffler set is also vulnerable to Taunt, which locks Dragonite into Dragon Tail. In general, Dragonite abhors status ailments and residual damage of all sorts. This makes Tyranitar and Hippowdon great assets for combating it, as both have Sand Stream and Stealth Rock to make Multiscale more difficult to use.
A few defensive Pokemon deal with Dragonite fairly well. Cresselia is a good check for most Dragonite sets, but it has a hard time with the Parashuffler set unless it can catch it outside of a Substitute, or if Cresselia is the last Pokemon. Hippowdon and Skarmory are good checks to Dragon Dance variants, but they do not deal with other sets so well due to phazing, special attacks, or sheer power.
Cloyster and Haxorus deserve special mentions. While it is not advisable for either Pokemon to switch directly into Dragonite, Cloyster can take a physical attack from Dragonite, use Shell Smash, and start a sweep with Icicle Spear, which hits through Multiscale. Haxorus has Mold Breaker and an extremely high 147 base Attack, which means that it will deal very heavy damage to Dragonite with Outrage, ignoring Multiscale.
Source:
www.smogon.com/bw/pokemon/dragonite
I think what annoys you the most is Multiscale, my dragonite has it and ice beams and draco meteors won't OHKO it.