Formation DevOps | Formation Terraform : 18- Les commandes de docker: conteneurs
This website is powered by ItGalaxy.io
Les commandes qui concernent les conteneurs Docker :
Lancer un conteneur à partir d’une image (commande : docker run )
$ docker run debian:latest cat /etc/issue
Debian GNU/Linux 9 \n \l
L’état d’un conteneur dépend de la commande qui est lancée. Ici, le conteneur exécute la commande cat et
s’arrête dès quelle est terminée.
La commande docker ps qui permet de lister les conteneurs en cours d’executions ne retourne
effectivement rien:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Pour obtenir la liste complète des conteneurs, il faut utiliser l’option docker ps –a :
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
396767b854a9 debian:latest “cat /etc/issue” 44 minutes Exited (0)
Le conteneur possède un identifiant unique (96767b854a9) et un nom généré aléatoirement
(quizzical_easley).
Nommer un conteneur (option : –name ou -n )
On peut utiliser l’option –name pour nommer un conteneur de manière plus explicite :
$ docker run –name cmd_cat debian:latest cat /etc/issue
Debian GNU/Linux 9 \n \
Cette commande a créé un nouveau conteneur :
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
2770f96e4a3d debian:latest “cat /etc/issue” About a minute ago Exited 1
ef6b6f1c64a1 debian:latest “cat /etc/issue” 4 minutes ago Exited 1
Obtenir une session interactive (option : -it )
On peut obtenir une session interactive (option -i ) en se branchant sur l’entrée standard du conteneur et en connectant un pseudo terminal TTY (option -t ):
$ docker run -it debian:latest /bin/bash
root@eae2cce2669d:/#
Le prompt reprend le CID du conteneur ( utiliser la commande exit pour quitter le conteneur).
Lancer un conteneur en mode daemon (option : -d ) :
On peut lancer un conteneur en mode daemon pour qu’il tourne en tâche de fond (le mode interactif tourne
au premier plan).
$ docker run -d –name test_daemon nginx
4d81f9903afe1b777de6389954c762122b5aeea847f5b4f8953ad3
08bbc5203d
// on affiche la liste des conteneurs en cours d’execution :
$ docker ps
CONTAINER ID IMAGE COMMAND
4d81f9903afe nginx “nginx -g ‘daemon …«
// on stoppe ce conteneur
$ docker stop test_daemon
Afficher les processus en cours dans un conteneur
-
Suspendre (freezer) et réactiver un conteneur
$ docker pause / unpause <nom_conteneur> ou -
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
Les commandes de docker: conteneurs
-
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_diff debian /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 à commiter le 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:latest formationsDocker/debian:latest
$docker push formationsDocker/debian:latest
Exécuter une commande dans un conteneur démarré
Dans l’exemple, on lance un conteneur nginx en mode daemon et on utilise la commande docker exec pour
s’y connecter :
$ docker run -d –name test_exec nginx
$ docker exec -it test_exec /bin/bash
root@331e1e904e1e:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin
root@331e1e904e1e:/# exit
exit
Supprimer un conteneur:
$ docker rm test_attach
Supprimer plusieurs conteneurs en utilisant les CID abrégés:
$ docker rm 331 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_cp nginx
On copie le fichier index.html depuis le conteneur sur la machine hôte
$ docker cp test_cp:/usr/share/nginx/html/index.html.
On remplace le contenu du fichier :
$ echo “Hello World” > index.html
Attention au “.” en fin de ligne qui représente le répertoire courant
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 tail sur 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_events nginx
$ docker pause test_events
$ docker unpause test_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 unpause 331e1e904e1e21e963ac729df121cabe7
2017 - 12 - 18T16:54:29.942202432+01:00 container kill 331e1e904e1e21e963ac729df121cabe782a
TP2 :Modification d’un conteneur et pusher une image
- Récupérer l’mage formationsdocker/tp1-docker:latest
- lancer un conteneur à partir de cette image en mode deamon.
- copier un fichier à l’intérieur de conteneur.
- Supprimer le conteneur.
TP3 :Modification d’un conteneur et pusher une image
-
lancer une autre fois le conteneur à partir de l’image formationsdocker/tp1-docker:latest.
-
Personnaliser les message afficher en rajoutant votre nom.
-
Ensuite créer votre images à partir de ce conteneur.
-
Pusher cette image sur l’organisation formationsdocker avec un tag personnel.
Avec le compte (username : formationk8s /pwd: formationk8s) -
Ensuite lancer un conteneur à partir cette image et rajouter un port pour qu’on puisse la tester sachant que
ce conteneur est exposé au port 8080
TP4 : Plus complexe Création d’une base de donnée mysql
-
Récupérer une image mysql:latest.
-
Lancer un conteneur à partir de cette image.
-
rajouter un tableau users dans ce conteneur et rajouter votre nom dedans :
-
Les commands mysql :
-
CREATE DATABASE databasename;
-
use databasename ;
-
SHOW TABLES;
-
CREATE TABLE IF NOT EXISTS users ( name VARCHAR(255) NOT NULL ) ENGINE=INNODB;
-
INSERT INTO users VALUES (‘Zied zinelabidine’);
-
Créer une image à partir de ce conteneur avec un tag perso ,
-
pusher sur l’organisation formationsdocker.
-
récupérer l’mage pusher et vérifier le résultat.
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io