reseau:docker:utiliserdocker
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
reseau:docker:utiliserdocker [2024/12/08 22:17] – [Récupérer une image dans sa dernière version] techer.charles_educ-valadon-limoges.fr | reseau:docker:utiliserdocker [2024/12/10 16:41] (Version actuelle) – techer.charles_educ-valadon-limoges.fr | ||
---|---|---|---|
Ligne 133: | Ligne 133: | ||
Lancez un conteneur Ubuntu. Comme précédemment, | Lancez un conteneur Ubuntu. Comme précédemment, | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker run ubuntu |
- | btssio@ubuntudocker: | + | $ docker ps -a |
CONTAINER ID IMAGE COMMAND | CONTAINER ID IMAGE COMMAND | ||
b5ec671c6d11 ubuntu "/ | b5ec671c6d11 ubuntu "/ | ||
Ligne 172: | Ligne 172: | ||
Le champ SIZE indique la taille virtuelle de l’image, c’est à dire la taille de la couche téléchargée qui est plus important que celle du conteneur hello-world car l’image ubuntu ne s’appuie pas sur une couche préexistante. | Le champ SIZE indique la taille virtuelle de l’image, c’est à dire la taille de la couche téléchargée qui est plus important que celle du conteneur hello-world car l’image ubuntu ne s’appuie pas sur une couche préexistante. | ||
- | Pour connaître comment | + | Pour connaître comment |
+ | * Exemple pour l' | ||
<code shell> | <code shell> | ||
+ | # this isn't used for the official published images anymore, but is included for backwards compatibility | ||
+ | # see https:// | ||
FROM scratch | FROM scratch | ||
- | ADD ubuntu-bionic-core-cloudimg-amd64-root.tar.gz / | + | ADD oci/ |
- | … | + | CMD [" |
- | + | ||
- | # overwrite this with 'CMD []' in a dependent Dockerfile | + | |
- | CMD ["/bin/bash"] | + | |
</ | </ | ||
La première ligne - FROM scratch - indique que cette image ne se base pas sur une image préexistante. On part de la version de base d’Ubuntu. | La première ligne - FROM scratch - indique que cette image ne se base pas sur une image préexistante. On part de la version de base d’Ubuntu. | ||
- | La dernière ligne - CMD ["/bin/bash"] - indique le processus qui doit être lancé par le conteneur et qui est ici un shell Bash. | + | La dernière ligne - CMD [" |
- | Sans rentrer dans le détail du contenu du fichier Dockerfile, les différentes actions décrites dans ce fichier se sont traduites par le téléchargement | + | Sans rentrer dans le détail du contenu du fichier Dockerfile, les différentes actions décrites dans ce fichier se sont traduites par le téléchargement |
===== Utiliser les conteneurs ===== | ===== Utiliser les conteneurs ===== | ||
Le conteneur ubuntu lancé prévoit bien l’exécution d’un processus shell mais il s’est ensuite automatiquement arrêté. En effet, comme rien n’a été précisé lors du lancement pour que vous puissiez utiliser ce shell, le conteneur a considéré que l’action à faire, lancer un shell et rien d’autre, est terminée. Il s’arrête donc. | Le conteneur ubuntu lancé prévoit bien l’exécution d’un processus shell mais il s’est ensuite automatiquement arrêté. En effet, comme rien n’a été précisé lors du lancement pour que vous puissiez utiliser ce shell, le conteneur a considéré que l’action à faire, lancer un shell et rien d’autre, est terminée. Il s’arrête donc. | ||
+ | |||
+ | |||
+ | ==== Lancer un conteneur en lui faisant exécuter une commande spécifique (et non seulement celle prévue par défaut) ==== | ||
+ | < | ||
+ | $ docker run ubuntu cat / | ||
+ | DISTRIB_ID=Ubuntu | ||
+ | DISTRIB_RELEASE=24.04 | ||
+ | DISTRIB_CODENAME=noble | ||
+ | DISTRIB_DESCRIPTION=" | ||
+ | </ | ||
+ | La commande run a lancé un conteneur à partir de l’image ubuntu et a exécuté dessus la commande cat pour afficher le fichier de version d’ubuntu. | ||
+ | |||
+ | Pour visualiser l' | ||
+ | < | ||
+ | $ docker ps -a | ||
+ | CONTAINER ID IMAGE COMMAND | ||
+ | 907a2cb48db5 | ||
+ | </ | ||
+ | Il est ainsi possible de retrouver très facilement de multiples conteneurs totalement inutiles qu’il faut supprimer. | ||
+ | |||
+ | ==== Supprimer un conteneur ==== | ||
+ | docker rm <id conteneur> | ||
+ | |||
+ | < | ||
+ | $ docker rm distracted_wilbur | ||
+ | </ | ||
+ | Seul un conteneur avec un statut **exited** peut être supprimé. Si un conteneur est actif, il faut soit le stopper avant soit utiliser l’option -f : docker rm -f < | ||
+ | |||
+ | ==== Lancer un conteneur en programmant sa suppression ==== | ||
+ | Si, par exemple, le conteneur a pour seule vocation de lancer une commande, il est inutile de le conserver sur la machine hôte et il peut être supprimé dès qu’il a rempli sa fonction, comme nous l’avons fait avec le conteneur **hello-world** : cela peut se faire avec l’option **-- rm** : | ||
+ | |||
+ | < | ||
+ | $ docker run --rm ubuntu cat / | ||
+ | </ | ||
+ | Tant qu’un conteneur n’est pas supprimé, son environnement est sauvegardé et il peut être relancé. | ||
+ | |||
+ | ==== Relancer un conteneur ==== | ||
+ | docker start <id conteneur> | ||
+ | |||
+ | * Par défaut, le conteneur est relancé en arrière plan, donc rien ne s’affiche, | ||
+ | |||
+ | < | ||
+ | $ docker start -a laughing_ride | ||
+ | </ | ||
+ | |||
+ | |||
==== Lancer un conteneur en mode interactif ==== | ==== Lancer un conteneur en mode interactif ==== | ||
Ligne 195: | Ligne 241: | ||
* ouvrir une console pour que vous puissiez saisir des commandes : paramètre -t. | * ouvrir une console pour que vous puissiez saisir des commandes : paramètre -t. | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker run -i -t ubuntu |
root@394beb25ab78:/# | root@394beb25ab78:/# | ||
bin | bin | ||
Ligne 222: | Ligne 268: | ||
Pour lancer un conteneur arrêté avec son identifiant ou son nom : | Pour lancer un conteneur arrêté avec son identifiant ou son nom : | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker start ID_ou_son_nom |
</ | </ | ||
==== Autre commande pour visualiser les conteneurs actifs ==== | ==== Autre commande pour visualiser les conteneurs actifs ==== | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker container ls |
</ | </ | ||
Ligne 234: | Ligne 280: | ||
Lors du lancement d’un conteneur, on perd l’accès à la console du serveur Ubuntu. Cette commande permet de lancer le conteneur et de retrouver le shell du serveur sans arrêter le conteneur. | Lors du lancement d’un conteneur, on perd l’accès à la console du serveur Ubuntu. Cette commande permet de lancer le conteneur et de retrouver le shell du serveur sans arrêter le conteneur. | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker run -i -t -d ubuntu |
e70a11313849c4c2ce8beebe72935368b909759ab5eb4e2c2f1bcf715c1a2bd1 | e70a11313849c4c2ce8beebe72935368b909759ab5eb4e2c2f1bcf715c1a2bd1 | ||
- | btssio@ubuntudocker: | + | $ docker ps |
CONTAINER ID IMAGE COMMAND | CONTAINER ID IMAGE COMMAND | ||
e70a11313849 ubuntu "/ | e70a11313849 ubuntu "/ | ||
Ligne 243: | Ligne 289: | ||
On peut aussi écrire les paramètres de la façon suivante : | On peut aussi écrire les paramètres de la façon suivante : | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker run -itd ubuntu |
</ | </ | ||
==== Se connecter à un conteneur lancé ==== | ==== Se connecter à un conteneur lancé ==== | ||
Ligne 250: | Ligne 296: | ||
* S’attacher à la console du conteneur : **ATTENTION**, | * S’attacher à la console du conteneur : **ATTENTION**, | ||
+ | |||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker attach gallant_kilby |
root@e70a11313849:/# | root@e70a11313849:/# | ||
</ | </ | ||
* Pour quitter le conteneur mais en le laissant s’exécuter en arrière-plan : | * Pour quitter le conteneur mais en le laissant s’exécuter en arrière-plan : | ||
+ | |||
< | < | ||
Ctrl + p + q. | Ctrl + p + q. | ||
Ligne 261: | Ligne 309: | ||
* Pour lancer un processus shell (commande ls par exemple) dans un conteneur en cours d' | * Pour lancer un processus shell (commande ls par exemple) dans un conteneur en cours d' | ||
+ | |||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker exec -it gallant_kilby ls |
bin | bin | ||
boot | boot | ||
dev | dev | ||
... | ... | ||
- | btssio@ubuntudocker: | + | $ |
</ | </ | ||
==== Obtenir la liste des modifications d’un conteneur par rapport à son image de lancement ==== | ==== Obtenir la liste des modifications d’un conteneur par rapport à son image de lancement ==== | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker diff 394beb25ab78 |
C /root | C /root | ||
A / | A / | ||
A / | A / | ||
- | btssio@ubuntudocker: | + | $ |
</ | </ | ||
Cette commande utilise la syntaxe diff/patch en Linux : | Cette commande utilise la syntaxe diff/patch en Linux : | ||
Ligne 310: | Ligne 359: | ||
<code shell> | <code shell> | ||
- | $ docker run -e=IPAPIWEB=192.168.1.200 ubuntu env | + | $ docker run -e=IPAPIWEB="192.168.1.200" |
PATH=/ | PATH=/ | ||
HOSTNAME=2352eb733166 | HOSTNAME=2352eb733166 | ||
Ligne 352: | Ligne 401: | ||
Lors du lancement d’un conteneur, on perd l’accès à la console du serveur Ubuntu. Cette commande permet de lancer le conteneur et de retrouver le shell du serveur sans arrêter le conteneur. | Lors du lancement d’un conteneur, on perd l’accès à la console du serveur Ubuntu. Cette commande permet de lancer le conteneur et de retrouver le shell du serveur sans arrêter le conteneur. | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker run -i -t -d ubuntu |
e70a11313849c4c2ce8beebe72935368b909759ab5eb4e2c2f1bcf715c1a2bd1 | e70a11313849c4c2ce8beebe72935368b909759ab5eb4e2c2f1bcf715c1a2bd1 | ||
- | btssio@ubuntudocker: | + | $ docker ps |
CONTAINER ID IMAGE COMMAND | CONTAINER ID IMAGE COMMAND | ||
e70a11313849 ubuntu "/ | e70a11313849 ubuntu "/ | ||
Ligne 362: | Ligne 411: | ||
Pour accéder ensuite à ce conteneur on utilise la commande attach avec l’identifiant ou le nom du conteneur : | Pour accéder ensuite à ce conteneur on utilise la commande attach avec l’identifiant ou le nom du conteneur : | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker attach e70a11313849 |
root@e70a11313849:/# | root@e70a11313849:/# | ||
</ | </ |
reseau/docker/utiliserdocker.1733692665.txt.gz · Dernière modification : 2024/12/08 22:17 de techer.charles_educ-valadon-limoges.fr