Suivre la construction
Ouvrez la vue Builds. Les étapes FROM et COPY doivent se terminer sans erreur.
Étape 04 / 09 · Windows
Transformez un dossier contenant une page Web et un Dockerfile en image reproductible, puis lancez-la dans Docker Desktop.
Le résultat attendu
À l’étape précédente, vous avez utilisé l’image officielle nginx:alpine. Cette fois, vous allez conserver Nginx comme base, mais remplacer sa page d’accueil par la vôtre.
Avant de commencer
Préparation · Étape 1
Créez le dossier docker-demo dans votre dossier Documents. Il contiendra seulement les fichiers nécessaires à cette image.
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\Documents\docker-demo"
Set-Location "$env:USERPROFILE\Documents\docker-demo"
explorer .Préparation · Étape 2
Dans docker-demo, créez deux fichiers. Le premier est votre page. Le second est la recette de construction.
index.html<!doctype html>
<html lang="fr">
<meta charset="utf-8">
<title>Mon premier site Docker</title>
<style>
body { font-family: system-ui; background: #071525; color: #fff;
display: grid; place-items: center; min-height: 100vh; margin: 0; }
main { text-align: center; }
h1 { color: #42d9ee; }
</style>
<main>
<h1>Docker fonctionne !</h1>
<p>Image construite avec OwlNet Geek.</p>
</main>
</html>DockerfileFROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80| Instruction | Rôle |
|---|---|
FROM nginx:alpine | Utilise l’image officielle Nginx dans sa variante légère Alpine. |
COPY … | Place votre page à l’emplacement servi par Nginx. |
EXPOSE 80 | Documente le port Web utilisé dans le conteneur. Cette instruction ne publie pas le port à elle seule. |
Dockerfile, sans extension. Si l’Explorateur affiche Dockerfile.txt, renommez-le après avoir activé l’affichage des extensions.Construction · Étape 3
Ouvrez le terminal intégré avec le bouton >_ Terminal de Docker Desktop. Placez-vous dans le dossier, vérifiez les deux fichiers, puis lancez la construction.
Set-Location "$env:USERPROFILE\Documents\docker-demo"
Get-ChildItem
docker build -t owlnet-demo:1.0 .docker build-t owlnet-demo:1.0.Ouvrez la vue Builds. Les étapes FROM et COPY doivent se terminer sans erreur.
Ouvrez Images. Recherchez owlnet-demo avec le tag 1.0.
Interface graphique · Étape 4
Une image est un modèle encore inactif. Le bouton Run crée et démarre un conteneur à partir de ce modèle. Suivez exactement les écrans ci-dessous.
Dans le menu gauche de Docker Desktop, cliquez sur Images. Dans la partie Local, repérez la ligne owlnet-demo portant le tag 1.0.
Survolez cette ligne avec la souris, puis cliquez sur le bouton triangulaire Run. Une petite fenêtre de configuration s’ouvre.
Dépliez Optional settings. Dans Container name, saisissez owlnet-site.
Sur la ligne du port interne 80/tcp, saisissez 8081 dans le champ Host port. Le port interne 80 est déjà fourni par votre Dockerfile : vous n’avez normalement pas à le ressaisir.
Validez avec Run. Docker Desktop crée alors le conteneur et l’affiche dans la vue Containers.
Dans Containers, ouvrez owlnet-site, puis cliquez sur le lien 8081:80. Vous pouvez aussi saisir http://localhost:8081 dans votre navigateur.
localhost:80818081 → 808081 est la porte utilisée sur votre PC Windows. 80 est la porte utilisée par Nginx à l’intérieur du conteneur. Cette redirection permet au navigateur de votre PC d’atteindre le site isolé dans Docker.owlnet-demo:1.0owlnet-site8081 en face de 80/tcp.http://localhost:8081 dans le navigateur.Vérifiez que vous êtes dans Images → Local, et non dans Docker Hub. Vous pouvez obtenir exactement le même résultat depuis le terminal intégré avec la commande suivante :
docker run --name owlnet-site --detach --publish 127.0.0.1:8081:80 owlnet-demo:1.0Amélioration · Étape 5
Modifiez le texte dans index.html, enregistrez, puis reconstruisez avec un nouveau tag. Un tag permet de distinguer clairement les versions.
Set-Location "$env:USERPROFILE\Documents\docker-demo"
docker build -t owlnet-demo:1.1 .
docker image ls owlnet-demoFin du test
Dans Containers, arrêtez et supprimez owlnet-site. Dans Images, retirez ensuite les tags 1.0 et 1.1 si vous ne souhaitez pas les conserver.
docker stop owlnet-site
docker rm owlnet-site
docker image rm owlnet-demo:1.0 owlnet-demo:1.1owlnet-.Si une étape échoue
| Message ou symptôme | Cause probable | Correction |
|---|---|---|
| Dockerfile introuvable | Le fichier s’appelle Dockerfile.txt ou le terminal est dans le mauvais dossier. | Activez les extensions puis exécutez Get-ChildItem. |
COPY index.html … not found | index.html n’est pas dans le contexte de construction. | Placez les deux fichiers dans docker-demo et terminez la commande par un point. |
| Port 8081 déjà utilisé | Une autre application écoute déjà sur ce port. | Utilisez 8082 comme port hôte, tout en gardant 80 côté conteneur. |
| La vieille page reste affichée | L’image ou le conteneur 1.0 est encore utilisé, ou le navigateur conserve son cache. | Lancez 1.1 dans un nouveau conteneur et actualisez avec Ctrl + F5. |
| La construction semble réutiliser un ancien fichier | Cache de build. | Relancez exceptionnellement avec docker build --no-cache -t owlnet-demo:1.1 .. |
Validation
Fin de l’étape
L’étape 5 expliquera comment conserver les données avec un volume plutôt que de les laisser disparaître avec le conteneur.