29
janvier 2019

Docker : Pense-bête

Rédigé par  Aucun commentaire   Mis à jour le  04/05/2019

Les commandes de base pour Docker

Les commandes de base

Si vous ne savez vraiment  ce qu'est Docker, je vous invite à lire cet article : Docker - Conteneurisation des services

Pour les conteneurs

Récupérer une image Debian sur le Docker Hub

root@docker:~# docker pull debian

Cette commande est facultative dans la mesure où la commande "docker run" va de toutes façons faire un "docker pull" si elle ne trouve pas l'image dans la bibliothèque d'images locales.

 

création d'un conteneur à partir de l'image nginx

root@docker:~# docker run nginx
-i : conserve le STDIN ouvert même si le conteneur n'est plus rattaché
-t : attribue un terminal TTY
-d : Lancer le conteneur en background (retourne l'ID du conteneur)
-p 8080:80 : mappe le port 8080 de l'hôte sur le port 80 du conteneur
-e MYSQL_ROOT_PASSWORD=password : créer la variable d'environnement MYSQL_ROOT_PASSWORD
-v /path/local:/path/conteneur : si on souhaite une persistance des données hors conteneur
--name : nom du conteneur (un nom aléatoire est généré sinon)
--rm : Supprime automatiquement le conteneur après l’avoir quitté

Il existe beaucoup d'autres arguments évidemment.

A noter qu'on peut sortir d'un conteneur dans le détruire avec Ctrl + P + Q

Lister les conteneurs lancés

root@docker:~# docker ps
-a : afficher tous les conteneurs (lancés ou non)

Exécuter une commande

root@docker:~# docker exec <conteneurid> /bin/bash -c 'ls /var/www/html'
-ti <conteneurid> /bin/bash : ouvre un terminal de commande

Se rattacher à un conteneur qui tourne

root@docker:~# docker attach <conteneurid>

Stop / start / pause / unpause

root@docker:~# docker stop <conteneurid>
root@docker:~# docker start <conteneurid>
root@docker:~# docker pause <conteneurid>
root@docker:~# docker unpause <conteneurid>

Supprimer un conteneur

root@docker:~# docker rm <conteneurid>
 

Le conteneur doit avoir été arrêté avant d'être supprimé

 

Les images

créer une image

 docker build -f DockerFile 

Le Dockerfile est un fichier au format YAML qui décrit la façon dont il faut créer l'image

 

Rechercher une image sur le Docker hub

root@docker:~# docker search debian
--filter "is-official=true" : Rechercher que les images officielles

Lister les images disponibles en local

root@docker:~# docker images

Supprimer une image

root@docker:~# docker rmi <imageid>
--force : forcer la suppression

Pour être supprimée, une image ne doit être utilisée par aucun conteneur

Sauvegarde une image dans un fichier tar

root@docker:~# docker save <imageid> -o /tmp/debian.tar

Charger une image depuis un tar

root@docker:~# docker load -i /tmp/debian.tar

Commiter un conteneur vers une image

root@docker:~# docker commit <conteneurid> <imagename>

Il est possible de mettre à jour une image à partir d'un de ses conteneurs, mais la bonne pratique veut qu'on créé une image from scratch depuis un DockerFile plutôt

 

Debug

Obtenir des informations sur une image / un conteneur

root@docker:~# docker inspect <conteneurid|imageid> 

Afficher les ressources du conteneur

root@docker:~# docker stats <conteneurid> 

Voir le STDOUT d'un conteneur

root@docker:~# docker logs <conteneurid>
-f : suivre en permanence les logs de conteneurs (correspond à tail -f)
-t : affiche date et l'heure de reception

 

 

 

 

 
 
 

Écrire un commentaire

 Se rappeler de moi sur ce site

Quelle est la cinquième lettre du mot vvcsalm ? :

Docker : Pense-bête - Recettes de Geek ! - while ( ! tasty) cook_again();