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:03] – techer.charles_educ-valadon-limoges.fr | reseau:docker:utiliserdocker [2024/12/10 16:41] (Version actuelle) – techer.charles_educ-valadon-limoges.fr | ||
---|---|---|---|
Ligne 118: | 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 130: | 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 136: | 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 157: | 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 175: | 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 198: | 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 225: | 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 237: | 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 246: | 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 253: | 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 264: | 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 313: | 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 355: | 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 365: | 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.1733691818.txt.gz · Dernière modification : 2024/12/08 22:03 de techer.charles_educ-valadon-limoges.fr