Déployez vos applications grâce à Docker

Déployez vos applications grâce à Docker

10 mai 2019 Non Par Paidge

III. Les conteneurs

La différence entre un conteneur et une image est que les images sont statiques alors que les conteneurs vont vivre.

Commande pour créer puis lancer un conteneur à partir d’une image :

sudo docker run [-p port_host:port_conteneur] [-v /dossier/hote:/dossier/conteneur] [--name mon_conteneur] mon_image [-d] [ma_commande]

Exemples :

sudo docker run debian:wheezy #un nom aléatoire sera donné au conteneur
sudo docker run -p 80:80 --name my_cnt my_image echo "test"
sudo docker run --name mariadb-test -v /home/user/mariadb-volume:/var/lib/mysql -d -e MYSQL_ROOT_PASSWORD=pass_mariadb

P.S : l’option -d sert à détacher la console, -v c’est pour les volumes et -e c’est pour les variables d’environnement.

Pour lister les conteneurs :

sudo docker container ls -a

Le conteneur contient également d’autres éléments : il stocke des paramètres d’exécutions, comme par exemple le mappage de port ou les dossiers à partager avec le système hôte. Il va donc contenir des différences par rapport à l’image qui a servi à sa construction.

Pour voir les différences entre un conteneur et son image :

sudo docker diff mon_container

Pour enregistrer les changements effectués dans un conteneur (comme un snapshot dans une machine virtuelle), il est possible de créer une nouvelle image directement grâce à la commande :

sudo docker commit id_conteneur nom_nouvelle_image

Exemple :

docker commit 8dcd9e456a96 mon_image

Pour exécuter une commande dans le conteneur :

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

La liste des options est disponible dans la documentation officielle.

Exemple pour se connecter en bash dans un conteneur :

 sudo docker exec -it mon_conteneur /bin/sh

Autre exemple pour créer un fichier dans le conteneur :

docker exec -d ubuntu_bash touch /tmp/execWorks

Pour arrêter un conteneur :

sudo docker container stop id_conteneur
 sudo docker container kill id_conteneur # En cas de force majeure

Pour stopper tous les conteneurs :

sudo docker container stop $(docker container ls -a -q)

Pour relancer un conteneur à partir de l’état où il se trouvait (–attach sert à attacher la console) :

sudo docker start [--attach] nom_conteneur

N.B : Si vous lancez à nouveau la commande run au lieu de la commande start, Docker va vous créer un nouveau conteneur au lieu de relancer celui que vous aviez créé au départ.

Pour supprimer un conteneur :

sudo docker container rm <ID_conteneur>

Pour supprimer tous les conteneurs stoppés :

sudo docker container prune

A noter que toutes les modifications qui ont été apportées dans un conteneur disparaissent lorsqu’on supprime ce dernier. C’est pourquoi il est parfois nécessaire de monter des volumes de données persistantes entre le conteneur et le système hôte.

Sommaire :

  1. Introduction
  2. Installation de Docker
  3. Création et utilisation des images
  4. Gestion des conteneurs
  5. Docker-Compose

Pages : 1 2 3 4 5