@Flyingfish - I can see why it may be difficult to follow as a non-native speaker.
Firstly it's written in the "voice" of a working-class man.
The 'redcoat' which is used as a slight form of abuse refers to the scarlet or red coat that a military man as a member of the British Army.
In the first verse, the publican obviously dislikes soliders for some reason; or perhaps can tell by Tommy's speech that his is too "common" (working-class) to be in his pub. Or, feels that soldiers may cause trouble by drinking and becoming rowdy, and so he doesn't want them in his pub.
The solider (Tommy) is considering that as a soldier he's very much respected and wanted when there's a war on and people need protecting, but the rest of the time, people think he is beneath him and are rude and scornful.
The name of the solider is taken from instructions written at the time about filling out forms and "Tommy Atkins" was a name used as we might use "Joe Bloggs" or "A.N. Other" to simply indicate that someone should put a name in the space - essentially he's anybody. He's your typical soldier.
In the poem, Tommy is saying that he is well aware of the double-standards, and he is well aware that people mock him and are rude behind his back. That people have little respect for soldiers when they are not defending the country.
He says that he's just like anyone else - not a saint, not a hero, not a demon.
He refers to people who are asking for an improvement in conditions (food, pay, etc) and basically says that they should act rather than just speak; e.g. it's no good saying we need more food if you're not going to provide it.