22- Les commandes de docker: conteneurs

www.itgalaxy.io

Arrêter / démarrer / tuer / redémarrer un conteneur

$ docker stop / start / kill / restart <nom_conteneur> ou

Exporter l’ensemble du système de fichier d’un conteneur dans une archive TAR

$ docker export <nom_conteneur> ou > archive.tar

Afficher les ports réseaux exposés par un conteneur

$ docker port <nom_conteneur> ou

Afficher les changements effectués sur les fichiers d’un conteneur (A=Ajout, D=Delete, C=Modif)

$ docker run -it –name test_diffdebian/bin/bash
root@c7d328b087eb:/# apt update && apt -y upgrade

$ docker diff test_diff
C /root
A /root/.bash_history
C /tmp
C /var/lib/apt/lists
A /var/lib/apt/lists/deb.debian.org_debian_dists_stretch-updates_InRelease

Commiter un conteneur pour obtenir une nouvelle image :

Une solution pour “persister” les données ou les configurations consiste à commiterle conteneur pour créer une nouvelle image (clairement pas une bonne pratique).
Dans cet exemple, l’image est associée à l’utilisateur “levasbr1” correspondant à un compte sur le docker-hub pour faciliter la publication des images sur la plate-forme public.

$ docker commit test_diff /:
$ docker commit test_diff levasbr1/debian:latest

Pousser une image locale sur une registry public :

il faut disposer d’un compte sur docker-hub ensuite se loguer avec le compte (identifiant , mot de passe ).

$ docker login -u identifiant-docker-hub –p pwd

Ensuite , taguer l’image avec docker tag et pousser avec docker push :

Exemple : j’ai un répertoire avec le nom : formationsDocker: https://hub.docker.com/orgs/formationsDocker

$docker tag debian:latestformationsDocker/debian:latest

$docker push formationsDocker/debian:latest

Exécuter une commande dans un conteneur démarré
Dans l’exemple, on lance un conteneur nginxen mode daemon et on utilise la commande docker exec pour s’y connecter :

$ docker run -d –nametest_execnginx
$ docker exec-ittest_exec/bin/bash
root@331e1e904e1e:/# ls
bin boot dev etchome lib lib64 media mnt optproc root run sbin
root@331e1e904e1e:/# exit
exit

Supprimer un conteneur :

$ docker rmtest_attach

Supprimer plusieurs conteneurs en utilisant les CID abrégés :

$ docker rm331 c7d

Ici l’option -p permet d’exposer le port 80 du conteneur et de joindre le conteneur sur le port 8006 et l’adresse IP de l’hôte

$ docker run -d -p 8006:80 nginx

Copier des fichiers depuis ou à destination d’un conteneur :

Dans cet exemple, on récupère un fichier depuis un conteneur puis on le réimporte après modification.

$ docker run -d -p 8001:80 –name test_cpnginx

On copie le fichier index.html depuis le conteneur sur la machine hôte

$ docker cptest_cp:/usr/share/nginx/html/index.html.

Attention au “.” en fin de ligne qui représente le répertoire courant

On remplace le contenu du fichier :

$ echo “Hello World” > index.html

On copie le fichier modifié depuis l’hôte vers le conteneur

$ docker cp index.html test_cp:/usr/share/nginx/html/

Afficher des informations sur les conteneurs exécutés par Docker (équivalent à un top sous Linux)

$ docker stats

CONTAINER CPU % MEM USAGE / LIMIT MEM %
776035a48a44 0.00% 1.766MiB / 1.958GiB 0.09%

Afficher les événements qui se produisent sur le bus du moteur Docker (équivalent à un tailsur un fichier de log)

Pour tester cette commande, il faut générer quelques actions sur un conteneur et visualiser en même temps les évènements sur un autre terminal :

$ docker run -d –name test_eventsnginx
$ docker pause test_events
$ docker unpausetest_events
$ docker stop test_events

Observer les événements depuis un autre terminal :

$ docker events
2017 - 12 - 18T16:54:15.866668426+01:00 container pause 331e1e904e1e21e963ac729df121cabe782
2017 - 12 - 18T16:54:24.678680900+01:00 container unpause331e1e904e1e21e963ac729df121cabe7
2017 - 12 - 18T16:54:29.942202432+01:00 container kill331e1e904e1e21e963ac729df121cabe7






1. Nous contactez


2. Infra as a Service

  • Description: Infrastructure cloud évolutive et sécurisée
  • Links:

3. Projets Développeurs


4. Développeurs


5. Formations Complètes


6. Marketplace

7. Blogs


This website is powered by ItGalaxy.io