devops tools like docker
Docker
Afficher toutes les commandes de Docker / list all commands:
docker
Afficher toutes les images / list all image:
docker images
Installer une image à partir du dépot officiel de Docker / install from depot :
docker pull NOM_DE_L'IMAGE
Installer une image depuis un fichier Dockerfile / install image from dockerfile :
docker build NOM_IMAGE CHEMIN_VERS_DOCKERFILE
Supprimer une image /delete image:
docker rmi NOM_DE_L'IMAGE
docker rmi ID_IMAGE
Créer un container à partir d’une image / create a container from an image:
docker run OPTIONS NOM_DE_L'IMAGE
Démarrer un container /start a container:
docker start NOM_DU_CONTAINER
Relancer un container /restart a container:
docker restart NOM_DU_CONTAINER
Stopper un container /stop a container :
docker stop NOM_DU_CONTAINER
Supprimer un container (il faut que ce dernier soit obligatoirement arrété)/delete a stopped container :
docker rm NOM_DU_CONTAINER
Renomer un container /renam a container:
docker rename NOM_DU_CONTAINER NOUVEAU_NOM_DU_CONTAINER
Afficher les infos d’un container (cpu, mémoire, etc..) / stat from a container:
docker stats NOM_DU_CONTAINER
Exécuter une commande dans un container / execute a command in a container :
docker exec NOM_DU_CONTAINER
Lister les containers actifs/list the running containers :
docker ps
Lister tous les containers / list all containers :
docker ps -a
Accéder au shell aprés lancement d’un container / run an image with shell acess
docker run -i -t ID_IMAGE
Tooltips
While building a final container Docker will build intermediates containers. Il the final container doesn’t buid correctly you will have some shadows containers.
To delete them , launch :
docker rm $(docker ps -a -q --filter "status=exited") &&
docker rmi $(docker images -q --filter "dangling=true")
Stop all the Docker containers :
docker stop $(docker ps -a -q)
Delete all Docker images :
docker rmi $(docker images -a -q)
Stop and delete all containers :
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
Stop and delete all containers + Delete Docker Images :
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) && docker rmi $(docker images -a -q)
Le Dockerfile
Le fichier Dockerfile décrit comment une image est construite. La commande docker build construit une image à partir de ce fichier Dockerfile.
Syntaxe
Voici la syntaxe du Dockerfile pour décrire l’image et la manière dont elle est créée :
MAINTAINER
Auteur de l’image
FROM
nom de l’image de base existante qui sert de base à l’image à créer afin de ne pas partir de rient de tout mais du contenu d’une image existante
pour une image fonctionnant sur Ubuntu, l’image de base peut être Ubuntu
ENV
Définir une variable d’environnement
ADD
Ajoute un fichier local dans l’image
VOLUME [« /
Répertoire monté au démarrage du conteneur qui est externe au conteneur.
Ceci permet de conserver les fichiers après arrêt du conteneur
Voir documentation : Sharing Directories using volumes
USER
Indique l’utilisateur Linux utilisé lors du démarrage du conteneur
EXPOSE Indique le port réseau exposé par le conteneur
Ceci est utilisé pour définir sur quels ports réseau communiquent les conteneurs entre eux ou vers l’extérieur de la machine hôte de Docker
Voir documentation :
Linking containers together : configuration de l’interconnexion réseau entre conteneurs
Network Configuration : configuration des redirections de port sur la machine hôte
RUN
Voici un exemple simple de fichier Dockerfile :
1 2 3 4 5 6 7 8
# Se base sur l’image ubuntu version 14.04
FROM ubuntu:14.04
# Met a jour les packages linux
RUN apt-get update
# Lance le shell Bash au lancement du conteneur
CMD echo « Hello ! »
view raw
Dockerfile
hosted with ❤ by
GitHub
La ligne FROM indique que cette image se base sur l’image officielle ubuntu en version 14.04 disponible sur le registry public de Docker.
La commande suivante RUN apt-get update lance la mise à jour des packages Linux.
Enfin la dernière ligne CMD définit la commande qui sera lancée au démarrage du conteneur (et non lors de la création de l’image) qui est ici de lancer un shell Bash.
HAVE FUN