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 21:58] – [Afficher les images Docker présentes sur la machine] techer.charles_educ-valadon-limoges.fr | reseau:docker:utiliserdocker [2024/12/10 16:41] (Version actuelle) – techer.charles_educ-valadon-limoges.fr | ||
---|---|---|---|
Ligne 64: | Ligne 64: | ||
**Explication des tags** | **Explication des tags** | ||
- | * Le **TAG** associé à l’image | + | * Le **TAG** associé à l’image |
* **IMAGE ID** est l’identifiant unique de l’image. | * **IMAGE ID** est l’identifiant unique de l’image. | ||
* **CREATED** est la date de création de l’image publiée sur le site Docker Hub. | * **CREATED** est la date de création de l’image publiée sur le site Docker Hub. | ||
Ligne 75: | Ligne 75: | ||
Pour constater que le conteneur lancé est bien arrêté vous pouvez visualiser les conteneurs actifs : | Pour constater que le conteneur lancé est bien arrêté vous pouvez visualiser les conteneurs actifs : | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker ps |
- | CONTAINER ID IMAGE COMMAND | + | CONTAINER ID |
- | btssio@ubuntudocker: | + | |
</ | </ | ||
Le conteneur | Le conteneur | ||
Ligne 87: | Ligne 86: | ||
Visualisez maintenant tous les conteneurs créés, qu’ils soient actifs ou non : | Visualisez maintenant tous les conteneurs créés, qu’ils soient actifs ou non : | ||
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker ps -a |
- | CONTAINER ID IMAGE | + | CONTAINER ID IMAGE COMMAND |
- | 9bbd425c86f4 | + | be16991ea477 |
- | ae50ecb3a66d | + | 7905287e58fc |
- | btssio@ubuntudocker: | + | |
</ | </ | ||
- | Les 2 conteneurs basés sur la** même image hello-world**, | + | Les 2 conteneurs basés sur la **même image hello-world**, |
Chaque conteneur : | Chaque conteneur : | ||
Ligne 120: | Ligne 118: | ||
- | Cette image est basée sur quatre couches logicielles | + | Cette image est basée sur une couche logicielle |
<code shell> | <code shell> | ||
… | … | ||
- | f476d66f5408: | + | de44b265507a: Pull complete |
- | 8882c27f669e: | + | |
- | d9af21273955: | + | |
- | f5029279ec12: Pull complete | + | |
… | … | ||
</ | </ | ||
Ligne 132: | Ligne 127: | ||
<WRAP center round info> | <WRAP center round info> | ||
**INFORMATION**\\ | **INFORMATION**\\ | ||
- | Le chargement de ce conteneur **ubuntu** et des couches logicielles nécessaires | + | Le chargement de ce conteneur **ubuntu** et de sa couche logicielle nécessaire |
</ | </ | ||
Ligne 138: | 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 159: | Ligne 154: | ||
- | Télécharger l’image Docker ubuntu :bionic-20210827 | + | Télécharger l’image Docker ubuntu :noble-20241118.1 |
<code shell> | <code shell> | ||
- | btssio@ubuntudocker: | + | $ docker pull ubuntu:noble-20241118.1 |
- | bionic-20210827: Pulling from library/ | + | focal-20241011: Pulling from library/ |
- | e4ca327ec0e7: Pull complete | + | d9802f032d67: Pull complete |
- | Digest: sha256:9bc830af2bef73276515a29aa896eedfa7bdf4bdbc5c1063b4c457a4bbb8cd79 | + | Digest: sha256:8e5c4f0285ecbb4ead070431d29b576a530d3166df73ec44affc1cd27555141b |
- | Status: Downloaded newer image for ubuntu:bionic-20210827 | + | Status: Downloaded newer image for ubuntu:focal-20241011 |
- | docker.io/ | + | docker.io/ |
- | btssio@ubuntudocker: | + | |
- | REPOSITORY | + | $ docker images |
- | Ubuntu | + | REPOSITORY |
- | ubuntu | + | ubuntu |
- | btssio@ubuntudocker: | + | ubuntu |
</ | </ | ||
Il s’agit exactement de la même image comme le montre le champ IMAGE ID. Vous pouvez donc télécharger une version plus ancienne d’Ubuntu si votre projet porte sur une version bien précise de cet OS et faire cohabiter ensuite des conteneurs utilisant des versions différentes de système d’exploitation ou de paquets logiciels. | Il s’agit exactement de la même image comme le montre le champ IMAGE ID. Vous pouvez donc télécharger une version plus ancienne d’Ubuntu si votre projet porte sur une version bien précise de cet OS et faire cohabiter ensuite des conteneurs utilisant des versions différentes de système d’exploitation ou de paquets logiciels. | ||
Ligne 177: | 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 200: | 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 227: | 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 239: | 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 248: | 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 255: | 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 266: | 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 315: | 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 357: | 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 367: | 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.1733691513.txt.gz · Dernière modification : 2024/12/08 21:58 de techer.charles_educ-valadon-limoges.fr