« Catégorie:Docker » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 96 : | Ligne 96 : | ||
sudo iptables -I DOCKER-USER -i ens18 -p tcp --dport 5432 -j DROP | sudo iptables -I DOCKER-USER -i ens18 -p tcp --dport 5432 -j DROP | ||
sudo iptables -I DOCKER-USER -s 88.168.191.238 -p tcp --dport 5432 -j ACCEPT | sudo iptables -I DOCKER-USER -s 88.168.191.238 -p tcp --dport 5432 -j ACCEPT | ||
= Gestion des conteneur = | |||
Voir les images docker télécharger dans le serveur : | |||
sudo docker images | |||
Supprimer une image : | |||
sudo docker rmi postgres:15 | |||
Voir les volumes : | |||
sudo docker volume ls | |||
Supprimer un volume : | |||
sudo docker volume rm aeyos_pgsql_data | |||
Trouver la liste des version dispo de conteneur : | |||
https://hub.docker.com/_/postgres |
Version du 22 juillet 2025 à 11:33
Commandes
- docker ps : liste les conteneurs actif
- docker stop nom_du_conteneur : arrête un conteneur
- docker up -d : démarrer les VM en mode démons
- Utiliser un fichier env et un fichier de conf personnalise : docker-compose --env-file plane.env -f docker-compose.yaml up -d
- docker-compose down : Stop and remove resources
Modification de fichier de config
Parfois lorsqu'on modifie le fichier de conf les conteneur refuses de démarrer. Il faut alors purger les conteneurs modifiés : On part du principe que les contenueurs qui refuse de démarrer sont... éteints. Donc on purge tout les conteneurs éteint :
docker volume prune -f docker container prune -f docker image prune -a -f
Puis on démarre celui qui ne démarre pas. Cela force le téléchargement d'une image fraiche et la reconfiguration du conteneur :
docker-compose up -d web
Suppression (utile suite à modif de config)
docker ps docker stop NAME docker rm -f NAME (efface l'instance résiduelle. UP va relancer proprement l'image existante.) docker-compose up -d NAME (chargement le yml seulement si la commande est executer depuis le dossier qui contient le fichier docker_compose.yml, sinon utiliser "docker-compose -f mon_fichier_docker_compose.yaml up -d NAME")
Pour effacer l'image complète et repartir de zéro (mais sans toucher au volume) :
docker image ls docker rmi -f ID_IMAGE
Si besoin d'effacer un volume interne :
docker volume ls docker volume rm ID_VOLUME
Si besoin d'efface un volume externe :
sudo su - (car souvent seul root a les bon droits) cd PATH_VOLUME/ rm -rf * exit
Script permettant de remettre à zéro complètement les conteneurs situé sur un serveur
On arrête, on efface et on recommence de zéro en téléchargeant les images docker.
#!/bin/bash set -e echo "🚨 ATTENTION : Ce script va SUPPRIMER tous les conteneurs, images et caches Docker."
read -p "❓ Es-tu sûr de vouloir continuer ? (y/N) : " confirm if "$confirm" != "y" && "$confirm" != "Y" ; then echo "❌ Opération annulée." exit 1 fi echo "🛑 Arrêt de tous les conteneurs..." docker stop $(docker ps -aq) 2>/dev/null || true echo "🧹 Suppression des conteneurs..." docker rm -f $(docker ps -aq) 2>/dev/null || true echo "🖼 Suppression des images Docker..." docker rmi -f $(docker images -q) 2>/dev/null || true echo "✅ Purge terminée." echo "Si besoin de créer un réseau interne au conteneur : docker network create nom_du_reseau" echo "Si besoin de nettoyer aussi les volumes interne : docker volume rm $(docker volume ls -q)" echo "Pour un Nettoyage complet Docker (system prune) : docker system prune -a --volumes -f
Sécurisation
La publication des ports d'un conteneur créé des règles IPTABLES qui rend ces ports visibles depuis l'interface de publication.
En cas de :
ports: - "5432:5432"
Cela veux dire que ce port est accessible sur 127.0.0.1:toute le interfaces, et donc aussi d'internet (0.0.0.0).
Il est possible de spécifier l'interface de publication. Par exemple :
ports: - "127.0.0.1:5432:5432"
Pour n'autoriser qu'un accès local. En cas d'usage d'un VPN, il suffira d'indiquer l'adresse l'interface du VPN (l'ip de l'interface locale ;) ) .
Pour autoriser l'accès à certaines IP publiques et pas a d'autre il faut passer par IPTABLES.
Par exemple pour publier le port 3306 mais n'autoriser son accès qu'a l'ip distance xxx.xxx.xxx.xxx :
Dans docker-compose :
ports: - "5432:5432"
Puis en console :
sudo iptables -I DOCKER-USER -i ens18 -p tcp --dport 5432 -j DROP sudo iptables -I DOCKER-USER -s 88.168.191.238 -p tcp --dport 5432 -j ACCEPT
Gestion des conteneur
Voir les images docker télécharger dans le serveur :
sudo docker images
Supprimer une image :
sudo docker rmi postgres:15
Voir les volumes :
sudo docker volume ls
Supprimer un volume :
sudo docker volume rm aeyos_pgsql_data
Trouver la liste des version dispo de conteneur :
https://hub.docker.com/_/postgres
Pages dans la catégorie « Docker »
Cette catégorie comprend 2 pages, dont les 2 ci-dessous.