Si tu veux mettre une image de fond, tu choisis l'élément sur lequel tu veux ce fond soit mis (par exemple ta balise body), et tu utilises en css l'attribut background auquel tu passes l'url de ton image.
Tu as ensuite d'autres attribut pour indiquer si ton image doit être agrandi, dupliquée, pour la repositionner si elle ne doit pas occuper tout l'espace etc...
A noter qu'un fond n'affecte pas la taille d'un élément, donc tu met un fond sur un élément vide qui fait 0px de hauteur, tu ne verras rien, ton élément fera toujours 0px.
Il est facile de palier à ce problème en appliquant du height, du min-height ou du flex-grow (ce dernier attribut ne te parle problablement pas, c'est du flex, tu verras ça sans doute plus tard, c'est super pratique).
https://www.w3schools.com/css/css_background.asp
Une balise image n'a absolument pas vocation à être utilisée comme tu le fais.
Depuis un navigateur, fais mumuse avec l'inspecteur (clic droit -> inspecter), pour moi celui de chrome est le plus agréable à l'usage, mais tu peux utiliser un autre navigateur si tu préfères.
Tu peux observer chaque éléments, vérifier les padding et les margin appliqués dessus, t'amuser à redimensionner les images, vérifier comment se comporte un élément quand tu changes son display etc...
Les modifications effectuées de la sorte sont perdues lorsque tu actualise ou ferme la page, elle ne modifient absolument pas ton fichier html.