Qu'est-ce que Docker et comment l'utiliser sur un VPS ?
Docker est un outil qui exécute une application, avec tout ce dont elle a besoin, dans un paquet isolé appelé conteneur. Sur un VPS, utiliser Docker signifie que vous lancez une application à partir d'un paquet prêt à l'emploi au lieu de l'installer pièce par pièce sur le serveur. L'installation et la suppression demandent quelques commandes, et les applications ne perturbent pas les réglages les unes des autres.
Contrairement à une machine virtuelle, un conteneur n'embarque pas son propre système d'exploitation. Il partage le noyau du serveur : il démarre donc en quelques secondes et utilise peu de mémoire. En contrepartie, son isolation n'est pas aussi forte que celle d'une machine virtuelle.
Quatre termes suffisent pour commencer
| Terme | Ce que cela signifie |
|---|---|
| Image | Le paquet prêt à l'emploi d'une application. Elle est téléchargée depuis un registre comme Docker Hub. |
| Conteneur | Une copie en cours d'exécution, lancée à partir d'une image. |
| Volume | Un stockage persistant qui conserve vos données même quand le conteneur est supprimé. |
| Compose | Un outil qui définit plusieurs conteneurs dans un seul fichier compose.yaml et les gère avec une seule commande. |
Supprimer un conteneur supprime les fichiers qu'il contient. Montez tout ce qui doit survivre, comme une base de données, sur un volume ou sur un dossier du serveur.
Comment installer Docker sur Ubuntu ?
Connectez-vous d'abord au serveur en SSH. Le paquet docker.io des dépôts d'Ubuntu fonctionne, et le serveur Docker préinstallé de Seturack l'utilise. Pour la dernière version, utilisez le dépôt apt propre à Docker. Selon la documentation officielle de Docker, les paquets Ubuntu comme docker.io et docker-compose entrent en conflit avec les paquets propres à Docker : supprimez-les donc d'abord s'ils sont installés.
- Suivez la section « apt repository » de la page d'installation de Docker pour Ubuntu pour ajouter la clé de signature et la source du dépôt. Lancez telles quelles les commandes qui s'y trouvent, car elles changent d'une version à l'autre.
- Installez les paquets :
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - Vérifiez que le service tourne :
sudo systemctl status docker - Lancez le conteneur de test :
sudo docker run --rm hello-world
Si vous voyez le message de bienvenue, Docker est prêt. Sur Ubuntu et Debian, le service démarre tout seul à chaque démarrage.
Votre premier conteneur
Lancez un serveur web avec une seule commande :
docker run -d --name web --restart unless-stopped -p 80:80 nginx:1.30
-d exécute le conteneur en arrière-plan. --restart unless-stopped le relance quand le serveur redémarre ou que le conteneur plante. -p 80:80 relie le port 80 du serveur au conteneur. nginx:1.30 est le nom de l'image et son tag de version. Le tag n'est qu'un exemple : choisissez le tag stable actuel sur la page officielle de Nginx sur Docker Hub. Ouvrez l'adresse IP du serveur dans un navigateur et vous verrez la page d'accueil de Nginx. Pour le supprimer, lancez docker rm -f web.
Montez un volume pour les données persistantes, par exemple -v sitedata:/usr/share/nginx/html. Vous listez les volumes avec docker volume ls. Les services d'un même fichier compose.yaml se joignent par leur nom de service : votre application se connecte donc à la base de données sous le nom db, par exemple.
Quand vous avez plusieurs conteneurs, mettez-les tous dans un fichier compose.yaml et lancez docker compose up -d dans le dossier du fichier. Les clés image, restart, ports et volumes du fichier correspondent aux options ci-dessus. Vous vérifiez l'état avec docker compose ps, lisez les journaux avec docker compose logs -f et arrêtez tout avec docker compose down.
Les commandes de tous les jours
| Commande | Rôle |
|---|---|
docker ps | Liste les conteneurs en cours d'exécution. Ajoutez -a pour voir aussi les conteneurs arrêtés. |
docker logs -f web | Suit en direct le journal du conteneur web. |
docker exec -it web sh | Ouvre un shell dans le conteneur. |
docker stats | Affiche l'utilisation du CPU et de la mémoire des conteneurs. |
docker compose pull et docker compose up -d | Télécharge la nouvelle image et remplace le conteneur par le nouveau. Les données des volumes sont conservées. |
Avant de mettre à jour, lisez les notes de version de l'application et augmentez vous-même le tag de version dans le fichier compose. L'intérêt de fixer le tag est qu'une mise à jour devient une décision, pas un accident.
Quatre points d'attention
- Docker contourne les règles ufw. Selon la documentation officielle, les ports que Docker publie sont ouverts avant que les règles d'ufw ne s'appliquent. Une règle ufw qui refuse un tel port n'a aucun effet. Liez à l'adresse locale uniquement un service qui ne doit pas être joignable de l'extérieur, par exemple
-p 127.0.0.1:5432:5432. Les conteneurs d'un même réseau Docker peuvent déjà se joindre : vous n'avez donc pas besoin de publier une base de données. - Le tag latest. Si vous ne donnez aucun tag, c'est
latestqui est récupéré. Au prochain téléchargement, votre application peut passer à une version inattendue. Écrivez un tag précis et planifiez vous-même les mises à jour. - Le groupe docker équivaut à root. Ajouter un utilisateur au groupe
dockerlui donne des privilèges de niveau root (documentation officielle). N'ajoutez que des comptes de confiance. - Les journaux et les images remplissent le disque. Le réglage de journalisation par défaut de Docker n'a pas de limite de taille. Fixez-en une sur le conteneur :
--log-opt max-size=10m --log-opt max-file=3.docker system dfmontre l'utilisation du disque, etdocker image prunesupprime les images sans tag.
Docker ou installation directe ?
Docker aide quand vous faites tourner plusieurs applications qui demandent des versions différentes sur un même serveur, quand vous voulez essayer une application et la retirer proprement, ou quand le développeur publie une image officielle. Pour un cas simple comme un seul site WordPress, une installation directe convient aussi. Docker est une couche en plus : la mettre à jour, la surveiller et sauvegarder les volumes est votre affaire. Si vous hésitez, commencez avec une seule petite application. Vous n'avez pas à tout passer sous Docker d'un coup.
Docker est prêt chez Seturack
Si vous ne voulez pas installer Docker vous-même, vous pouvez commander un serveur avec l'application Docker. Docker et Compose sont installés, et l'installation prend environ 2,5 minutes. Le pare-feu (ufw) est activé et seul le port SSH est ouvert vers l'extérieur, fail2ban protège SSH, et les journaux des conteneurs sont limités à 3 fichiers de 10 Mo chacun par conteneur. L'application n'a pas d'interface web, le panneau n'affiche donc pas d'adresse de site. Le piège des ports décrit plus haut s'applique ici aussi. Pour démarrer avec un serveur prêt, voyez la page VPS Docker.
Prêt à l'emploi chez Seturack : Portainer, Coolify, Dokploy.
Commentaires0
Pas encore de commentaire
Soyez le premier à partager votre avis.
Veuillez vous connecter ou vous inscrire pour laisser un commentaire.