They all seem to mean soldier. Could anyone help me?
These words do not have strict definitions, but I think the primary difference between 兵隊 and 兵士 is the level of formality.
兵隊 is a relatively casual word for 'soldier'. For example, one can friendly address a solider as 兵隊さん. Note that when this word is used on its own, it rarely refers to a group of soldiers, despite its appearance. There are some words which happen to contain 兵隊 and refer to a group of soldiers: 海兵隊 (Marine), 騎兵隊 (Cavalry), etc., but don't mix them up.
兵士 sounds more formal and technical to me, and usually refers to lowest ranked soldiers. (roughly corresponds to Private, and sometimes Sergeant, I think) I feel people higher than commissioned officers are unlikely to be called 兵士.
軍人 refers to military personnel in general, and includes everyone in the military hierarchy (General, Colonel, Lieutenant, ...).
Note that there's no official 軍人/兵隊/兵士 in modern Japan. So-called "Japanese Army" is officially called 自衛隊 or Self Defense Force. The politically-correct way to refer to them is 自衛隊員.
naruto gave a good answer which really should be sufficient, but in case anyone finds this helpful, I am going to leave some information here.
The individual kanji interestingly mean the following:
兵 - soldier
隊 - company
士 - gentleman / samurai
軍 - military
人 - person
So it might seem like the natural conclusion to assume that "兵隊" is more indicative of a group than the others. Nonetheless, Japanese is interesting like that, and the word on its own doesn't give indication whether it is singular or plural. Perhaps "兵隊" requires the existence of a group, e.g. it implies that it isn't a lone mercenary, but actually part of a group.
"士" is commonly used in words to describe a specific profession, such as "運転士" or "税理士", hence the technical ring to it.
"軍人" is synonymous to "兵士", except that it can also mean "military personnel", e.g. anyone who works in, or for the military.