A soldier is anyone who fights as part of a military.
If you were to join the British or Japanese military you would become a soldier.
A warrior could be a soldier but it could also be anyone showing great strength, courage or aggressiveness. Such as athletes or political figures.
A knight is a person granted the title of knighthood. About 500 to 1000 years ago those granted a knighthood would have been elite fighters who directly served a lord and were often skilled in battle on horseback.
In modern times knighthood are granted to those who have made large contributions to culture or charity. For example, Sir David Attenborough has been awarded 2 knighthoods for television broadcasting and conservatism. That's also why he gets the title Sir in front of his name.