docker run -d --name web -p 8080:80 image:tag | Lancer un conteneur en arrière-plan |
docker run --rm -it image sh | Conteneur jetable avec un shell |
docker ps / docker ps -a | Conteneurs en cours / tous |
docker logs -f web | Suivre les logs |
docker exec -it web sh | Entrer dans un conteneur |
docker stop web / docker rm -f web | Arrêter / supprimer |
docker build -t nom:tag . | Construire une image |
docker images / docker rmi nom:tag | Lister / supprimer des images |
docker volume ls / docker volume rm nom | Lister / supprimer des volumes |
docker system df | Espace disque utilisé |
docker compose up -d | Démarrer le projet |
docker compose up -d --build | Démarrer en reconstruisant les images |
docker compose ps | État des services |
docker compose logs -f service | Logs d'un service |
docker compose exec service sh | Shell dans un service |
docker compose run --rm service commande | Commande dans un conteneur jetable |
docker compose restart service | Redémarrer un service |
docker compose down | Arrêter (les données restent) |
docker compose down -v | Arrêter et effacer les volumes |
docker compose exec php composer install | Installer les dépendances PHP |
docker compose exec php php artisan key:generate | Générer APP_KEY |
docker compose exec php php artisan migrate --seed | Migrer et remplir la base |
docker compose exec php php artisan tinker | Console interactive |
docker compose exec php php artisan test | Lancer les tests |
docker compose exec php php artisan optimize:clear | Vider tous les caches |
docker compose exec db psql -U laravel | Console PostgreSQL |
docker compose exec front npm install paquet | Ajouter une dépendance |
docker compose restart front | Relancer après un changement de package.json |
docker compose logs -f front | Erreurs de compilation |
docker build -t front:prod --build-arg NEXT_PUBLIC_API_URL=... . | Image de production |
- Toujours une version précise :
postgres:18, jamais postgres ni latest. - Les commandes PHP et npm se lancent dans le conteneur, pas sur ta machine.
- Entre conteneurs, on s'adresse par le nom du service.
localhost désigne le conteneur lui-même. - Les
.env ne se commitent pas. Les .env.example, si. - Une base de données a toujours un volume, monté au bon chemin.
- Ce qui change rarement en haut du Dockerfile, ce qui change souvent en bas.
- Pas de secret dans une variable
NEXT_PUBLIC_. - Avant de demander de l'aide :
ps, logs, exec.