Base de connaissances

Conteneurs LXC Novice 12 min

Préparer un premier conteneur web

Un chemin simple pour publier une page de test dans un LXC sans se perdre dans les options.

Objectif pratique

Accompagner un débutant qui veut publier une page web de contrôle dans un conteneur Linux sans se perdre dans les réglages techniques.

Distribution utilisée

Debian / Ubuntu

Sommaire

  1. Nommer le service avant de l’installer
  2. Installer une base minimale
  3. Publier une page de contrôle
  4. Tester depuis le bon endroit
  5. Noter les ports vraiment utiles

Guide détaillé

Étape 1

Nommer le service avant de l’installer

Choisissez un nom d’hôte qui raconte le rôle du conteneur. Dans trois mois, web-demo ou api-facturation sera plus utile que debian-12-2.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Contrôler un service systemd

systemd donne l’état réel du service, son démarrage automatique et les journaux utiles au diagnostic.

Debian / Ubuntu
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 100 --no-pager
Ce que font les commandes
  • `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Installer et tester un serveur web

Sur Debian ou Ubuntu, Nginx est un choix simple pour exposer une page, un reverse proxy ou une application HTTP.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
systemctl status nginx --no-pager
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `curl` teste une URL depuis la machine elle-même.

Commandes adaptées Debian / Ubuntu

Sur Debian ou Ubuntu, apt installe Nginx depuis les dépôts officiels et systemd active le service.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `curl` teste une URL depuis la machine elle-même.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `curl -I http://127.0.0.1` doit répondre avec un code HTTP attendu.
  • Le certificat HTTPS doit se renouveler automatiquement si vous exposez le service publiquement.

Étape 2

Installer une base minimale

Partez d’une distribution stable, mettez les paquets à jour et installez uniquement ce qui sert au premier test web. Plus la base est sobre, plus elle sera facile à maintenir.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour ce conteneur LXC, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Installer une base minimale" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Installer et tester un serveur web

Sur Debian ou Ubuntu, Nginx est un choix simple pour exposer une page, un reverse proxy ou une application HTTP.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
systemctl status nginx --no-pager
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `curl` teste une URL depuis la machine elle-même.

Commandes adaptées Debian / Ubuntu

Sur Debian ou Ubuntu, apt installe Nginx depuis les dépôts officiels et systemd active le service.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `curl` teste une URL depuis la machine elle-même.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `curl -I http://127.0.0.1` doit répondre avec un code HTTP attendu.
  • Le certificat HTTPS doit se renouveler automatiquement si vous exposez le service publiquement.

Étape 3

Publier une page de contrôle

Une page simple permet de vérifier le serveur web sans mélanger DNS, application et certificat. C’est votre point de repère pendant toute la mise en ligne.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Installer une page web de contrôle

Cette page simple permet de distinguer un problème Nginx d’un problème DNS, proxy ou pare-feu.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
printf '<h1>OK Newscloud</h1>\n' | sudo tee /var/www/html/index.html
sudo systemctl enable --now nginx
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `curl` teste une URL depuis la machine elle-même.

Installer et tester un serveur web

Sur Debian ou Ubuntu, Nginx est un choix simple pour exposer une page, un reverse proxy ou une application HTTP.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
systemctl status nginx --no-pager
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `curl` teste une URL depuis la machine elle-même.

Commandes adaptées Debian / Ubuntu

Sur Debian ou Ubuntu, apt installe Nginx depuis les dépôts officiels et systemd active le service.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `curl` teste une URL depuis la machine elle-même.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `curl -I http://127.0.0.1` doit répondre avec un code HTTP attendu.
  • Le certificat HTTPS doit se renouveler automatiquement si vous exposez le service publiquement.

Étape 4

Tester depuis le bon endroit

Testez localement depuis le conteneur, puis depuis l’extérieur. Si l’un marche et pas l’autre, vous savez si le problème vient du service ou du réseau.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour ce conteneur LXC, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Tester depuis le bon endroit" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Installer et tester un serveur web

Sur Debian ou Ubuntu, Nginx est un choix simple pour exposer une page, un reverse proxy ou une application HTTP.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
systemctl status nginx --no-pager
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `curl` teste une URL depuis la machine elle-même.

Commandes adaptées Debian / Ubuntu

Sur Debian ou Ubuntu, apt installe Nginx depuis les dépôts officiels et systemd active le service.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `curl` teste une URL depuis la machine elle-même.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `curl -I http://127.0.0.1` doit répondre avec un code HTTP attendu.
  • Le certificat HTTPS doit se renouveler automatiquement si vous exposez le service publiquement.

Étape 5

Noter les ports vraiment utiles

Gardez une trace des ports ouverts pour éviter l’exposition par habitude. Un conteneur web n’a généralement pas besoin de beaucoup plus que SSH et HTTP/HTTPS.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Lister les ports et tester le réseau

On vérifie ce qui écoute réellement et on teste localement avant de chercher une erreur côté DNS ou routeur.

Debian / Ubuntu
ip -br addr
ip route
sudo ss -tulpn
curl -I http://127.0.0.1
nc -vz 127.0.0.1 80
Ce que font les commandes
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `ss -tulpn` liste les ports ouverts et les processus qui écoutent.
  • `curl` teste une URL depuis la machine elle-même.
  • `nc -vz` teste si un port TCP répond sans envoyer de données applicatives.

Installer et tester un serveur web

Sur Debian ou Ubuntu, Nginx est un choix simple pour exposer une page, un reverse proxy ou une application HTTP.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
systemctl status nginx --no-pager
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `curl` teste une URL depuis la machine elle-même.

Commandes adaptées Debian / Ubuntu

Sur Debian ou Ubuntu, apt installe Nginx depuis les dépôts officiels et systemd active le service.

Debian / Ubuntu
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
curl -I http://127.0.0.1
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `curl` teste une URL depuis la machine elle-même.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `curl -I http://127.0.0.1` doit répondre avec un code HTTP attendu.
  • Le certificat HTTPS doit se renouveler automatiquement si vous exposez le service publiquement.

Checklist finale

  • Nom d’hôte lisible
  • HTTP testé
  • Ports inutiles fermés