# Docker

## Monitoring

Commande | Description
--- | ---
`docker info` | Afficher les informations générales de votre Docker
`docker ps (-a)` | Afficher les containers en cours de fonctionnement (`-a` = afficher aussi les containers arrêtés)
`docker stats --all` | Affiche les statistiques des conteneurs
`docker image ls` | Afficher les images téléchargées et construites sur votre machine
`docker network ls` | Afficher les réseaux créer sur votre machine
`docker inspect <container>` | Inspecter la configuration d'un conteneur
`docker logs (--tail) <container>` | Visualiser les logs d'un conteneur (`--tail` = afficher les logs en live)
`docker exec -it <container> bash` | Exécuter des commandes dans un conteneur actif

## Démarrer un container

    docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

Option | Description
--- | ---
`-i` | Garder STDIN ouvert, même si pas attaché
`-t` | Allouer un pseudo-terminal
`-p` | Configurer le port
`-v` | Lier un dossier sur le serveur au conteneur
`-c` | Créer un partage
`-d` | Activer le mode daemon. Le conteneur sera actif et en tâche de fond
`-e` | Forcer Docker a utiliser un driver exec spécifique
`--name` | Identifier un conteneur par un nom au lieu d’un ID
`--dns` | Définir un DNS personnalisé
`--net="<mode>"` | Définir le mode réseau entre “Bridge”, “none”, “container:” et “host”
`--network` | Connecter le container à un réseau existant
`--add-host` | Modifier le contenu du fichier “hosts” en y ajoutant les valeurs spécifiées
`--link` | Ajouter un lien vers un autre conteneur

## Gestion des containers

Commande | Description
--- | ---
`docker run <image> <options>` | Démarrer un container à partir d'une image avec les options configurées
`docker ps` | Afficher tous les containers en cours d'exécutions
`docker ps -a` | Afficher tous les containers
`docker stop <container>` | Arrêter un container
`docker stop $(docker ps -aq)` | Arrêter tous les containers
`docker restart <container>` | Redémarrer un container
`docker kill <container>` | Envoyer la commande kill à un container
`docker rm <container>` | Supprimer un container
`docker rm $(docker ps -aq)` | Supprimer tous les containers

## Gestion des images

Commande | Description
--- | ---
`docker search <mot_clé>` | Rechercher une image
`docker pull <image:tag>` | Télécharger l'image depuis le repo
`docker push <dossier/image>` | Envoyer l'image au repo
`docker image` | Afficher les images téléchargées sur la machine
`docker rmi <image>` | Supprimer une image
`docker rmi $(docker image -q)` | Supprimer toutes les images
`docker build <options>` | Créer une image (voir /Docker/Image)

## Gestion des réseaux

Commande | Description
--- | ---
`docker network ls` | Afficher les réseaux existants sur la machine
`docker network create --driver <driver_type> <réseau>` | Créer un réseau avec un driver spécifique (voir /Docker/Réseau)
`docker network inspect <réseau>` | Afficher les informations d'un réseau
`docker network rm <réseau>` | Supprimer un réseau

# Docker-Compose

Commande | Description
--- | ---
`docker-compose up` | Lancer la stack
`docker-compose up -d` | Lancer la stack en daemon
`docker-compose pull` | Télécharger les images de la stack
`docker-compose stop` | Arrêter les containers
`docker-compose down` | Supprimer les containers
`docker-compose logs` | Afficher les logs des containers