Before we discuss counter builds, let's talk about what an early Zealot rush is:
"my defenders got wiped by 4-5 zealots and more and more zealots kept pouring in and eventually killed me"
This is the dreaded 2 Gate rush.
Your first goal is going to be identifying it. Luckily this is fairly easy to do. If you scout with your 12-13th drone/probe/scv you should get to your opponents base while his first Gateway is still building, worst case while his second is. All 2 Gate rushes start the same: Pylon, Gateway, Gateway, Pylon. This makes them very easy to pin down. If you see that second Gateway go up before the Cybernetics Core you know he's playing some sort of rush (pro tip: you can click on a Protoss building warping in to see what it will be). If he does a delayed rush, chances are you'll already be in a better position to defend, so you really want to watch out for this early rush.
The attack that will come should be 5 Zealots with 2 more in route (obviously he may wait for more or less, but this is the best time for him to attack).
As Zerg a 2 Gate opening is one of the scariest things to deal with (right after Hellion harass into Mech). If you fast expanded, use the expo as a damage soak and cancel it before it gets killed (if you can). Ideally you'll want to keep that expansion alive as his economy will already be devastated. When you scout a 2 Gate, you'll want to build a Spine Crawler almost immediately. Additionally, a Roach Warren is also recommended. Roaches are very strong vs Zealots (slow attack and starting armor vs a unit with fast attack) and if you can position some by your ramp or other choke you can cut the surface area of your Roaches in half. If you're already into a more speedling based build, then you're going to want to wait for him to surround your Hatchery or engage your Spine Crawler. This will naturally give you a very nice surround on his units as they will spread out. I also recommend bringing your Queen along for ranged dps (and to infuse the Spine Crawler).
The key thing for Zerg about repelling a 2 Gate play is the recovery. Early 2 Gate is so effective that even though he is putting himself at an economic disadvantage, he may do enough damage to your economy to win. You'll want to do the following: Put an Zergling outside his based (this is a scout for his next move); Tech to Roach or Hydra or Muta, as 2 Gate will likely lead into 3 Gate, 3 Gate + Robo or 4 Gate; Power drones, this one is key as he's making a huge economic sacrifice to push with 2 Gate and you need to exploit this for victory.
Terran traditionally have less problems with 2 Gate as they can usually wall off before the Zealots get there. If you already have Vespean Gas then its ok to go for Marauders with Concussive Shell, however, if your strategy didn't include that, you're going to want to skip add-ons and throw down a second Barracks when you scout the second Gateway. With Marines faster build time, you can create a tough Marine force behind your wall well before his Zealots arrive. This ruins the fact that he made an early sacrifice to go for a Zealot push and should give you command of the match. From here is very easy to transition into an MMM or even BioMech which should give you a quick victory.
As Protoss you're going to also want to wall, stick a Zealot or two in the opening and push for Stalkers. If you can have enough 1 Stalker out and your opening plugged before he gets there, chances are you've already won. It is not unusual, upon seeing a 2 Gate, to throw down a second gateway yourself. As defender you'll naturally have the advantage as his troops have a longer rally distance, and you can control the choke. If you push out an early Sentry, he'll probably Rage Quit and call you a cheater.
Now if you're dealing with a Proxy Gate (which is different than a 2 Gate) you have slightly different things to watch for. Lack of Assimilators and Pylons in his base are your best clue. At this point you'll want to start taking your scout and covering all the corners of the map. Additionally move a scout to outside your natural or the nearest Xel Naga tower.
Best Answer
There are a number of ways you can handle this, and I'll try to break them down for you:
Roaches are what many people consider the Marine's natural Enemy. With high HP (almost 3 times a Marine) and that 1 base armor its not surprising people would believe this. Unlikely in Starcraft 1, Marine's can't upgrade their attack range, so the shorter range of the Roach is punished less. The biggest issue you have to worry about with Roach based play is where you engage your opponent. Ideally you want to engage on open ground, on creep, and with a nice arc. Try to remember that because of the Roaches' short range remember to "move" into melee range, instead of "attack move."
Baneline Style is very popular against MMM in general, and usually used to compliment Roach or Hydra work. If you initially engage with your Roaches (in more Marauder based play you'd use Hydralisks here), and then bring in Banelings from the side or behind (flanking in military terms), you can usually make quick work of any Marine based force. Remember you never attack with Banelings, as they explode on death to do damage. Instead just "move" near the Marine force and let the Marines kill them off. I cannot stress how important baneling speed upgrade is against a Marine force, even on creep.
Infestor Harassment is also a nice compliment to dealing with Marines. While Medivac will heal most of the damage quickly, in the middle of a fight, Infestors can prevent Marines from backing up, while dealing incredible dps (9*#of marines). They are an excellent compliment to a Roach or Zergling based strategy. If you're dealing with Infestors alone, remember that it will usually require 2 Fungal Growths to kill a pack of Marines; where "usually" is influenced by the use of Stim and the presence of Medivacs.
If you're coming from a late game Air strategy it'll make more sense to use Broodlords. Brood Lords are effective because of their high damage, and because Broodlings draw fire from Marines. Because Broodlords are slow, its normally useful to engage from the edge of a cliff, where few Marines can hit you. Unless you have a very large number of Broodlords, this kind of play is unlikely to be effective on its own, and is best complimented with a cheap ground force (something ling based).
Backdooring is usually an effective technique for shutting down late game Terran pushes. Terran style tends to be fairly turtle dependent, so most Terran players will run for their base when ever its in trouble. You can leverage this with Muta Harass, Zergling Drops, or even Nydus Canal. The very fact that you are in his base will often make a Terran call off his assault, giving you more time to prepare.
With the exception of the last strategy, all these strategies are what I like to call "meat and potatoes" strategies. They have some method for killing the Marines and some method for distracting them. This is because Marines are extremely cost effective dps and once they hit critical mass, almost impossible to destroy for a short range based Zerg force. You strategy should look something like this: I need something for him to hit (let's say Ultralisks) and something to kill him (let's say Hydralisks, two units I didn't recommend). You would then engage with your Ultra heavy force, backed by long range Hydra. The Marines will naturally target the Ultra who have high HP and Armor, while the Hydra do the lion's share of the damage. When designing an anti-Marine strategy keep this in mind.
I used to include an explanation of Arcs here, but I've since moved it