Quando você coloca floats em uma div, certamente notou que a div não contém realmente os floats.
O primeiro reflexo foi colocar um display: table no container, mas não queremos alterá-lo.
Portanto, você pode usar pseudoelementos:
.container:before, .container:after {
zoom: 1
content: "";
display: table;
}
.container:after {
clear: both;
}