This answer is largely taken from, with modification, two earlier answers; this one and this one.
The lack of action in the North Sea came down to a combination of the strength of the British Fleet, a lack of confidence amongst German commanders, German strategy, and the risk of submarines and mines. The ideal battle for the Germans would have been an engagement between their full fleet, and a smaller part of the British Grand Fleet. Many of their sorties were aimed at producing such a result, being raids against the British coastline. The British, meanwhile, were wary of the risks that any offensive action might bring. An attack on the German North Sea coast might force an action; but equally, it might mean heavy losses to submarines and minefields. As such, they were generally content for the Grand Fleet to remain in harbour as a 'fleet in being'.
Initially, the German battlefleet was commanded by Admiral Friedrich von Ingenohl, who would later be replaced by Admiral Hugo von Pohl. Von Pohl was in turn replaced in 1916 by Reinhard Scheer. Ingenohl was a fairly conservative commander, while von Pohl was almost completely unwilling to take offensive action. Scheer, meanwhile, was much more aggressive. The British equivalent to Ingenohl and Scheer was Admiral John Jellicoe, with David Beatty commanding the British battlecruiser force. Jellicoe was, again, a more cautious commander, aware of the vast power of the fleet he commanded, but also of its vulnerability. He strongly and stridently opposed plans to commit the Grand Fleet in support of amphibious operations against islands like Sylt or Borkum off the German coast, as well as other offensive operations. Beatty, though, was somewhat more aggressive, and would support some offensive action.
The first naval battle of the war was the Battle of Heligoland Bight, fought at the end of August 1914. The commander of the British submarine flotilla (Roger Keyes) at Harwich had noted that the German patrols of the Heligoland Bight followed a strict routine. In companion with the head of the light surface forces at Harwich (Reginald Tyrwhitt, commanding a collection of destroyers and cruisers), he suggested carrying out an operation to ambush these patrols as they were setting out. The Admiralty approved the plan, but added a force of battlecruisers under David Beatty to Keyes' and Tyrwhitt's light forces, though they failed to properly notify Tyrwhitt. The battle started at about 7 am on the 28th, when one of Tyrwhitt's light cruisers, the Arethusa, sighted a German destroyer. The ensuing battle was a confused melee, with poor communications dogging both sides - the British had issues with misidentifying ships, while the Germans had no idea of the scale of the battle. The British managed to ambush the German destroyers, sinking one, before being driven off by the arrival of German light cruisers. However, when Beatty's battlecruisers (and their supporting light cruisers) arrived, the British were able to smash the German force. The British suffered heavy damage to three destroyers and one light cruiser. In return, they sank three light cruisers and a destroyer, and heavily damaged another cruiser and three more destroyers.
The Germans replied in November, with a raid against the British east coast. The German battlecruiser force made a sortie against the port of Yarmouth, while a squadron of light cruisers was dispatched to lay mines off the port and off Lowestoft. They were supported by two squadrons of battleships. Arriving off Yarmouth early on the 3rd, the battlecruisers engaged patrolling British destroyers. The destroyer Halcyon took minor damage before the German ships had to break off due to a minefield. A few shells were fired at the town, but only hit the beach. The British submarine D-5 ran into a mine and sank soon after leaving port to locate the German squadron. Due to a lack of information, and command confusion, the Grand Fleet wouldn't sortie from its anchorage until well after the German squadron had departed.
The next sortie, far more amenable to German aims, came on the 15th December. Admiral Ingenohl had gained permission to commit the battlecruisers again, and with the destruction of the German East Asian Squadron at the Falklands, a morale boost was needed. After submarine patrols had determined the Yorkshire coast to be unprotected by minefields, poorly defended and with heavy coastal traffic, it was decided to make another battlecruiser raid against Scarborough, Whitby and Hartlepool. The German battlecruiser squadron sortied at 3am on the 15th, followed that afternoon by the High Seas Fleet. This would remain at the eastern edge of the Dogger Bank, where it could support the battlecruisers without exposing Ingenohl's force too heavily. The battlecruisers arrived off their targets with complete surprise early on the 16th. All three towns were heavily bombarded. Only Hartlepool was defended, with three 6in coastal defence guns, four patrolling destroyers, and two light cruisers and a submarine in harbour. The destroyers retreated after firing a single torpedo. The coastal defence guns hit several German ships, and forced the large armoured cruiser Blucher to move out of range. One light cruiser was damaged, and run aground by her captain, while the other and the submarine did not manage to engage the Germans.
However, the RN had been forewarned by the code-breakers of Room 40. They were aware that the German battlecruisers were coming, but not that the High Seas Fleet was out. The RN had sortied a force capable of defeating Hipper's battlecruisers - 4 battlecruisers under Beatty, and six dreadnoughts under Sir George Warrender, who commanded the combined force. These were based at different ports, and so had to rendezvous at a point that would very easily have put them within range of the High Seas Fleet, had Ingenohl not been too cautious for his own good. Parts of the British destroyer screen clashed with Ingenohl's own. Believing these to be a precursor to the whole of the Grand Fleet, he abandoned the battlecruisers, and turned away to home. Had he remained on course, he could very easily have wiped out the entire British force. Once news reached the British ships of the German bombardments, they turned northwards. This put them into the perfect position to engage Hipper's battlecruisers. However, fog and poor signalling would foil this, with only the British and German light cruisers clashing before the RN withdrew. Room 40 had deciphered a message from Ingenohl's ships that they interpreted as meaning he was sortieing, and Warrender was commanded to withdraw his force.
As 1915 began, Hipper planned another sortie. Suspecting that British trawlers on the Dogger Bank had been sending information about his force's movements to the Admiralty, he planned to clear any suspicious trawlers from the Bank, and attack any light warships he encountered. He sortied with three battlecruisers and Blucher on the 23rd January. The RN, informed by Room 40 that he was coming out, sent Beatty's battlecruisers to intervene. The two forces encountered each other at about 7.30 on the 24th. Unsupported, Hipper turned to retreat back to the safety of the Heligoland Bight. Beatty gave chase. A running battle ensued, with both Blucher and Beatty's flagship Lion taking heavy damage. The German battlecruiser Seydlitz had two turrets knocked out by a magazine fire that would have caused an explosion had the magazine not been flooded. Misidentifying a wake as a submarine periscope, Beatty attempted to order his forces to evade the submarine, while continuing the engagement. However, due to the damage to Lion and large amounts of miscommunication, this resulted in all of his battle cruisers turning away from Hipper's force and engaging Blucher. This allowed Hipper's force to escape, in return for an armoured cruiser sunk. The Kriegsmarine came away from Dogger Bank confident but cautious, believing they'd sunk at least one of Beatty's battlecruisers. However, it was decided that battlecruisers couldn't act without the full support of the HSF's battleships. As these were kept on a tight leash by the Kaiser, who wanted them in Germany to help secure the Baltic, and to free up coastal defence troops for the army, this effectively brought a halt to major sorties in 1915. In addition, von Pohl was heavily opposed to using the battleships for offensive actions, and so was unwilling to press the issue. The HSF would sortie five times in the year, but never go further than 120 miles from its base at Wilhelmshaven.
Von Pohl was removed from his position in early 1916, due to illness. Scheer, his replacement, believed that the morale of the High Seas Fleet had decayed over the enforced months in port. As such, he planned several more raids to take place over the coming months. In April, the German fleet would carry out the first of these, bombarding Lowestoft and Yarmouth on the 24th. This was an attempt to lure British forces which had been sighted in the North Sea into a trap. However, those forces had returned to base after a collision between the battlecruisers Australia and New Zealand. All the Germans had to show for their operation was some minor damage to a few British light cruisers, small compensation for mine damage to Seydlitz. There were plans for a second bombardment operation in late May, but this had to be cancelled due to damaged ships and poor weather. Instead, it was turned into a plan to destroy British shipping in the Skagerrak, the strait between Denmark and Norway. The Grand Fleet, and the battlecruiser force responded to this, leading to the Battle of Jutland.