Additionally you could always just apply the padding to the text itself, depending on how much content you are actually going to have in the container div. You really don't want to name the div body though, since that's not very semantic. You might want to change it to #container or something similar so you don't develop bad habits. body should be the page body, not a div.
If your just going to have text, you can do something like this:
#container { background-color: red; }
#container p { margin-left: 10xp; }
Otherwise, if your going to have a mixture of tags and content in the parent div and you don't want to apply the margin them individually (although technically you should in order to avoid getting into the habit of just nesting extraneous div's), Nikita's answer should work good for you, assuming you just want the background on the container div and not the entire page itself.