Ciao, in genere viene usata quella tecnica chiamata "Sticky Footer".

Questo articolo su CSS-TRICKS spiega alcuni modi per ottenere tale impostazione: Sticky Footer, Five Ways

Attualmente è consigliato l'uso di flexbox.

Nel tuo caso potresti usare una cosa del genere dopo aver tolto dal footer quel position:absolute (che in questo caso non ti serve):
codice HTML:
html, body {
    height: 100%
}

body {
    display: flex;
    flex-direction: column;
}

.container {
    flex: 1;
}